diff --git a/.github/workflows/build.ci.yml b/.github/workflows/build.ci.yml index a282e83..2da0d69 100644 --- a/.github/workflows/build.ci.yml +++ b/.github/workflows/build.ci.yml @@ -70,21 +70,21 @@ jobs: - name: "Setup: Checkout" uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3 - name: "Setup: GraalVM (Java ${{ vars.JVM_VERSION }})" - uses: graalvm/setup-graalvm@d1891786152ae96fee67f86c3a1eae596291bbed # v1 + uses: graalvm/setup-graalvm@2f25c0caae5b220866f732832d5e3e29ff493338 # v1 with: java-version: ${{ vars.JVM_VERSION || '19' }} check-for-updates: true github-token: ${{ secrets.GITHUB_TOKEN }} - id: "auth" name: "Setup: Authorize Service Account" - uses: "google-github-actions/auth@35b0e87d162680511bf346c299f71c9c5c379033" # v1 + uses: "google-github-actions/auth@71fee32a0bb7e97b4d33d548e7d957010649d8fa" # v1 with: credentials_json: "${{ secrets.BUILDBOT_SERVICE_ACCOUNT }}" create_credentials_file: true export_environment_variables: true cleanup_credentials: true - name: "Setup: Node" - uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3 + uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3 with: node-version: ${{ vars.NODE_VERSION }} - name: "Setup: PNPM" @@ -96,7 +96,7 @@ jobs: - uses: bazelbuild/setup-bazelisk@95c9bf48d0c570bb3e28e57108f3450cd67c1a44 # v2 - name: "🛠️ Build" id: bazelbuild - run: bazel build --config=adc --config=ci //elide/runtime/ts //elide/runtime/js + run: bazel build --config=adc --config=ci //elide/runtime/... - name: "🛠️ Test" id: bazeltest env: diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 9d08491..3335641 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -41,7 +41,7 @@ jobs: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@99c53751e09b9529366343771cc321ec74e9bd3d # v2.0.6 + uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3 with: results_file: results.sarif results_format: sarif @@ -63,7 +63,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 with: name: SARIF file path: results.sarif diff --git a/.version b/.version index 670b460..08808f9 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -1.0.0-alpha9 +1.0.0-alpha10 diff --git a/elide/runtime/js/BUILD.bazel b/elide/runtime/js/BUILD.bazel index aa9407f..811f3c1 100644 --- a/elide/runtime/js/BUILD.bazel +++ b/elide/runtime/js/BUILD.bazel @@ -13,6 +13,7 @@ load( "BASE_JS_EXTERNS", "TS_MODULES", "NODE_BUILTINS", + "ELIDE_BUILTINS", ) package( default_visibility = ["//visibility:public"], @@ -44,13 +45,27 @@ ts_config( ## -- Entrypoints -- ## EXTERNS = BASE_JS_EXTERNS + [ - # Any additional externs here. + # Nothing at this time. ] +js_library( + name = "preload-js", + srcs = ["preload.js"], + suppress = [ + "JSC_UNKNOWN_EXPR_TYPE", + "JSC_UNDEFINED_VARIABLE", + ], +) + js_library( name = "entrypoint-js", srcs = ["entrypoint.js"], + deps = [":preload-js"], ts_deps = TS_MODULES, + suppress = [ + "JSC_UNKNOWN_EXPR_TYPE", + "JSC_INEXISTENT_PROPERTY", + ], ) js_runtime( @@ -76,4 +91,7 @@ runtime_dist( modules = [ "//elide/runtime/js/modules/%s" % m for m in NODE_BUILTINS ], + elide_modules = [ + "//elide/runtime/js/modules/elide/%s" % m for m in ELIDE_BUILTINS + ], ) diff --git a/elide/runtime/js/MANIFEST.MF b/elide/runtime/js/MANIFEST.MF index ac440b1..3375052 100644 --- a/elide/runtime/js/MANIFEST.MF +++ b/elide/runtime/js/MANIFEST.MF @@ -10,5 +10,5 @@ Name: elide/runtime/js/ Specification-Title: Elide Runtime for JavaScript Specification-Version: 1.0 Specification-Vendor: Elide Ventures, Inc. -Name: elide/runtime/js/runtime.gz +Name: elide/runtime/js/js.runtime.tar.gz Content-Type: application/javascript;encoding=gzip;elide-runtime diff --git a/elide/runtime/js/bridge/BUILD.bazel b/elide/runtime/js/bridge/BUILD.bazel index 7320b3b..ceb91bf 100644 --- a/elide/runtime/js/bridge/BUILD.bazel +++ b/elide/runtime/js/bridge/BUILD.bazel @@ -17,6 +17,10 @@ ts_library( deps = [ "//elide/runtime/js/intrinsics/err", ], + suppress = [ + "JSC_INEXISTENT_PROPERTY", + "JSC_UNRECOGNIZED_TYPE_ERROR", + ], ) alias( diff --git a/elide/runtime/js/bridge/jserror.ts b/elide/runtime/js/bridge/jserror.ts index bfd7962..b416b7a 100644 --- a/elide/runtime/js/bridge/jserror.ts +++ b/elide/runtime/js/bridge/jserror.ts @@ -11,138 +11,8 @@ * License for the specific language governing permissions and limitations under the License. */ -import { ValueError } from "../intrinsics/err"; import { installGlobal } from "../intrinsics/base"; - -/** - * # JS: Error Info - * - * Interface for information about an error which is to be surfaced in the JavaScript guest context. Errors of this kind - * carry a `message`, a `code`, and a potential `cause`, which is a recursive reference to another error payload. - */ -type ErrorInfo = { - /** Error message string. */ - message?: string; - - /** Error code or ID. */ - code?: string; - - /** Cause of this error. */ - cause?: ErrorInfo; -}; - -/** - * # JS: Error Options - * - * Interface for options which affect creating a bridged JavaScript error. The error can be created and thrown in the - * same step, or throwing the error can be deferred. - */ -type ErrorOptions = { - /** Whether to immediately throw the error created for the provided `info`. */ - immediate?: boolean; -}; - -/** - * # JS: Error Constructor. - * - * Expected interface for JavaScript errors' constructors. This is included inline to explain to the Closure Compiler - * how error constructors are expected to behave. - */ -interface JsErrorConstructor<E extends Error> { - new(message?: string): E; - (message?: string): E; - readonly prototype: E; -} - -/** - * # JS: Intrinsic Error Bridge - * - * Describes the interface of a JavaScript error bridging intrinsic, which is responsible for surfacing JavaScript - * errors which occur at a deeper level in the VM. - * - * When a Java-style exception is raised during VM processing, the outer VM host can reach in and use this bridge to - * structure the error in a familiar way for JavaScript guest code. The exception is wrapped with contextual information - * and re-thrown. - */ -export interface IntrinsicErrorBridge { - /** - * Create a `TypeError` with the provided `errInfo`. - * - * @param errInfo Error info to use to create the type error. - * @param options Options which apply to throwing this error. - * @return Error which should be thrown or consumed. - * @export - * @public - */ - typeError(errInfo: string | ErrorInfo, options?: ErrorOptions): TypeError; - - /** - * Create a `ValueError` with the provided `errInfo`. - * - * @param errInfo Error info to use to create the value error. - * @param options Options which apply to throwing this error. - * @return Error which should be thrown or consumed. - * @export - * @public - */ - valueError(errInfo: string | ErrorInfo, options?: ErrorOptions): ValueError; -} - -/** - * Create an error from the provided `info`. - * - * @template E Error type. - * @param ctor Constructor for the error type. - * @param err Error info. - * @param options Options which apply to throwing this error. - * @return Error instance. - * @suppress {checkTypes,reportUnknownTypes} - */ -function errFromInfo<E extends Error>(ctor: JsErrorConstructor<E>, err: string | ErrorInfo, options?: ErrorOptions): E { - let msg; - if (typeof err === "string") { - msg = err; - } else { - msg = err.message; - } - const errObj: E = new ctor(msg); - if (options?.immediate == false) { - return errObj; - } else { - throw errObj; - } -} - -// Main implementation of the `IntrinsicErrorBridge` interface. -class IntrinsicErrorBridgeImpl implements IntrinsicErrorBridge { - /** @inheritDoc */ - typeError(errInfo: string | ErrorInfo, options?: ErrorOptions): TypeError { - return errFromInfo(TypeError as unknown as JsErrorConstructor<TypeError>, errInfo, options); - } - - /** @inheritDoc */ - valueError(errInfo: string | ErrorInfo, options?: ErrorOptions): ValueError { - let msg; - if (typeof errInfo === "string") { - msg = errInfo; - } else { - msg = errInfo.message; - } - const exc = new ValueError(msg); - if (options?.immediate === false) { - return exc; - } else { - throw exc; - } - } -} - -/** - * Main error bridge singleton. - * - * @see IntrinsicErrorBridge for the structure of this singleton. - */ -export const errBridge: IntrinsicErrorBridge = new IntrinsicErrorBridgeImpl(); +const NativeValueError = primordials['NativeValueError']; // Install as global. -installGlobal("__errBridge", errBridge); +installGlobal("ValueError", NativeValueError); diff --git a/elide/runtime/js/config.bzl b/elide/runtime/js/config.bzl index 30ecbd4..3ca29c9 100644 --- a/elide/runtime/js/config.bzl +++ b/elide/runtime/js/config.bzl @@ -51,7 +51,6 @@ TS_MODULE_PACKAGE = "//elide/runtime/js/intrinsics" TS_MODULES = ["%s:%s" % (TS_MODULE_PACKAGE, t) for t in [ # Top-level modules. "base64", - "console", "timers", ]] + ["%s/%s:%s" % (TS_MODULE_PACKAGE, t, t) for t in [ # Sub-modules @@ -105,6 +104,7 @@ NODE_BUILTINS = [ "stream/web", "string_decoder", "test", + "timers", "timers/promises", "tls", "trace_events", @@ -117,3 +117,10 @@ NODE_BUILTINS = [ "worker", "zlib", ] + +## Elide Builtins +## -------------- +## Registers modules which are provided by Elide, but not Node. +ELIDE_BUILTINS = [ + "sqlite", +] diff --git a/elide/runtime/js/entrypoint.js b/elide/runtime/js/entrypoint.js index 6d7a74f..524ecb4 100644 --- a/elide/runtime/js/entrypoint.js +++ b/elide/runtime/js/entrypoint.js @@ -17,12 +17,11 @@ goog.module('elide.runtime.js.entry'); -// Top-level Intrinsics. -goog.require('elide.runtime.js.bridge.jserror'); -goog.require('elide.runtime.js.intrinsics.base64'); -goog.require('elide.runtime.js.intrinsics.console'); -goog.require('elide.runtime.js.intrinsics.err.ValueError'); -goog.require('elide.runtime.js.intrinsics.url.URL'); +const { + app_env, + version, + node_process, +} = primordials; /** * Type structure of a Node process object. @@ -47,50 +46,26 @@ let NodeProcess; */ let EnhancedNodeProcess; -/** - * Global symbol where application environment is injected. - * - * @const - * @type {!string} - */ -const APP_ENV = '__Elide_app_env__'; - -/** - * Global symbol where Elide version is injected. - * - * @const - * @type {!string} - */ -const RUNTIME_VERSION = '__Elide_version__'; - -/** - * Global symbol where the intrinsic process object is injected. - * - * @const - * @type {!string} - */ -const RUNTIME_PROCESS = '__Elide_node_process__'; - /** * Application environment injected by the Elide runtime. * * @type {!Object<string, !string>} */ -const injectedApplicationEnvironment = globalThis[APP_ENV]; +const injectedApplicationEnvironment = app_env; /** * Elide version provided by the runtime. * * @type {!string} */ -const elideVersion = globalThis[RUNTIME_VERSION]; +const elideVersion = version; /** * Intrinsic process object, injected by the runtime. * * @type {!EnhancedNodeProcess} */ -const intrinsicProcess = globalThis[RUNTIME_PROCESS]; +const intrinsicProcess = node_process; /** * Return the Node Process API to use. @@ -98,54 +73,8 @@ const intrinsicProcess = globalThis[RUNTIME_PROCESS]; * @returns {!EnhancedNodeProcess} */ function nodeProcessAPI() { - if (!intrinsicProcess) { - throw new Error('Node process API is not available.'); - } return intrinsicProcess; } globalThis['window'] = undefined; globalThis['gc'] = null; - -/** - * Global application object. - * - * @type {!Object<string, *>} - */ -const App = {}; -globalThis['global'] = App; -globalThis['self'] = App; - -/** - * Global Elide object. - * - * @type {{ - * version: !string, - * process: !EnhancedNodeProcess, - * context: {build: boolean, runtime: boolean} - * }} - */ -const Elide = { - 'process': nodeProcessAPI(), - 'version': elideVersion, - 'context': { - 'build': false, - 'runtime': true - }, -}; - -globalThis['Elide'] = Elide; - -/** - * Global process proxy object. - * - * @type {!EnhancedNodeProcess} - */ -const process = /** @type {!EnhancedNodeProcess} */ ({ - 'pid': Elide.process.pid, - 'cwd': Elide.process.cwd, - 'env': Elide.process.env, - ...(Elide.process || {}), -}); - -globalThis['process'] = process; diff --git a/elide/runtime/js/intrinsics.externs.js b/elide/runtime/js/intrinsics.externs.js index 4e0e04d..e99a160 100644 --- a/elide/runtime/js/intrinsics.externs.js +++ b/elide/runtime/js/intrinsics.externs.js @@ -19,6 +19,15 @@ * @author samuel.gammon@gmail.com (Sam Gammon) */ +// Primordials are provided to runtime internals from the host VM. + +/** + * Host-provided bindins. + * + * @type {!Object<string, *>} + */ +const primordials = {}; + /** * Console base. * diff --git a/elide/runtime/js/intrinsics/BUILD.bazel b/elide/runtime/js/intrinsics/BUILD.bazel index 55aa4e4..9dfd5c0 100644 --- a/elide/runtime/js/intrinsics/BUILD.bazel +++ b/elide/runtime/js/intrinsics/BUILD.bazel @@ -38,14 +38,6 @@ ts_library( module = MODULE_NAME, ) -ts_library( - name = "console", - srcs = [ - "console.ts", - ], - module = MODULE_NAME, -) - ts_library( name = "timers", srcs = [ diff --git a/elide/runtime/js/intrinsics/base64.ts b/elide/runtime/js/intrinsics/base64.ts index 857c09b..3d28a3d 100644 --- a/elide/runtime/js/intrinsics/base64.ts +++ b/elide/runtime/js/intrinsics/base64.ts @@ -11,33 +11,7 @@ * License for the specific language governing permissions and limitations under the License. */ -import {globalContext, installGlobal} from "./base"; -import type {Base64} from "./primordials"; - -/** - * @return Intrinsic Base64 bridge. - */ -function resolveIntrinsic(): Base64 { - return globalContext['Base64'] as Base64; -} - -/** - * Standard DOM `btoa` function which encodes a string to Base64. - * - * @param input Input string to encode. - */ -function base64Encode(input: string): string { - return resolveIntrinsic().encode(input); -} - -/** - * Standard DOM `atob` function which decodes a string from base64. - * - * @param input Input string to decode. - */ -function base64Decode(input: string): string { - return resolveIntrinsic().decode(input); -} +export {}; declare global { /** @@ -58,6 +32,3 @@ declare global { // @ts-ignore export const atob: (input: string) => string; } - -installGlobal('btoa', base64Encode); -installGlobal('atob', base64Decode); diff --git a/elide/runtime/js/intrinsics/blob/Blob.ts b/elide/runtime/js/intrinsics/blob/Blob.ts index 2413c58..3adf246 100644 --- a/elide/runtime/js/intrinsics/blob/Blob.ts +++ b/elide/runtime/js/intrinsics/blob/Blob.ts @@ -11,9 +11,5 @@ * License for the specific language governing permissions and limitations under the License. */ -/** - * TBD. - */ -export interface Blob { - // Not yet implemented. -} +// @ts-ignore +export const Blob = globalThis['Blob']; diff --git a/elide/runtime/js/intrinsics/console.ts b/elide/runtime/js/intrinsics/console.ts deleted file mode 100644 index 81eecb6..0000000 --- a/elide/runtime/js/intrinsics/console.ts +++ /dev/null @@ -1,386 +0,0 @@ -/* - * Copyright (c) 2024 Elide Technologies, Inc. - * - * Licensed under the MIT license (the "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://opensource.org/license/mit/ - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under the License. - */ - -// noinspection JSUnusedGlobalSymbols - -import { globalContext, installGlobal } from "./base"; -import type { IConsole } from "./primordials"; - -/** Enumerates available log levels. */ -export enum LogLevel { - /** Debug-level logging: informs the console about expected program states. */ - DEBUG = 'debug', - - /** Info-level logging: informs the console about notable expected program states. */ - INFO = 'info', - - /** Warn-level logging: notifies the developer of a sub-optimal program state. */ - WARN = 'warn', - - /** Error-level logging: emits a message about an unexpected and invalid program state. */ - ERROR = 'error', -} - -// Throw an `Error` describing an unsupported method. -function throwNotSupported(): Error { - return new Error('Method not supported'); -} - -/** - * Abstract console. - * - * Provides base implementation code for {@link IConsole} implementations. In particular, rollup and formatting of - * arguments is implemented here. - * - * ### WhatWG Console Specification: Unsupported Features - * - * - Extended or non-spec methods for performance measurement are not available (`profile`, etc) - * - Methods related to "grouping" log messages do nothing, since many server-side log systems are not capable of - * grouping messages after the fact. - */ -abstract class AbstractConsole implements IConsole { - /** - * Deliver a log message to the console backend. - * - * During this process, the provided `args` may be converted to string representations. - * - * @param level Log level of the message. - * @param args Arguments (portions) of the message. - */ - abstract deliverLog(level: LogLevel, args: any[]): void; - - /** @inheritDoc */ - trace(...args: any[]): void { - this.deliverLog(LogLevel.DEBUG, args); - } - - /** @inheritDoc */ - log(...args: any[]): void { - this.deliverLog(LogLevel.DEBUG, args); - } - - /** @inheritDoc */ - debug(...args: any[]): void { - this.deliverLog(LogLevel.DEBUG, args); - } - - /** @inheritDoc */ - info(...args: any[]): void { - this.deliverLog(LogLevel.INFO, args); - } - - /** @inheritDoc */ - warn(...args: any[]): void { - this.deliverLog(LogLevel.WARN, args); - } - - /** @inheritDoc */ - error(...args: any[]): void { - this.deliverLog(LogLevel.ERROR, args); - } - - /** - * ## Console: `assert` - * - * Assert the provided `condition`, failing with `data` message portions if the condition is `false`. - * - * From MDN: - * "The console.assert() method writes an error message to the console if the assertion is false. If the assertion - * is true, nothing happens." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/assert - * - * @param condition Condition to assert. - * @param data Arguments of any type, which the developer wishes to emit to the console; any number of arguments may - * be passed, and each argument will be emitted to the same console message call. - */ - assert(condition?: boolean, ...data: any[]): void; - - /** - * ## Console: `assert` - * - * Assert the provided `value` is truthy, failing with `message` if the value is `false`, and applying the provided - * `optionalParams` to format the message components. - * - * From MDN: - * "The console.assert() method writes an error message to the console if the assertion is false. If the assertion - * is true, nothing happens." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/assert - * - * @param value Condition to assert. - * @param message Message to display if the condition is `false`. - * @param optionalParams Format parameters for the provided `message`. - */ - assert(value?: unknown, message?: unknown, ...optionalParams: unknown[]): void { - throw new Error("Method not implemented."); - } - - /** - * ## Console: `clear` - * - * Clear the terminal/console screen, where supported. Server-side, this operation is a no-op. - * - * From MDN: - * "The console.clear() method clears the console if the console allows it. A graphical console, like those running - * on browsers, will allow it; a console displaying on the terminal, like the one running on Node, will not support - * it, and will have no effect (and no error)." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/clear - */ - clear(): void { - // no-op - } - - /** - * ## Console: `count` - * - * Apply an increment to the counter represented by `label`. - * - * From MDN: - * "The console.count() method logs the number of times that this particular call to count() has been called." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/count - * - * @param label Label for the counter to increment. - */ - count(label?: unknown): void { - throw throwNotSupported(); - } - - /** - * ## Console: `countReset` - * - * Reset the counter represented by `label`. - * - * From MDN: - * "The console.countReset() method resets counter used with console.count()." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/countReset - * - * @param label Label for the counter to reset. - */ - countReset(label?: unknown): void { - throw throwNotSupported(); - } - - /** - * ## Console: `dir` - * - * Where supported, display an interactive list of the properties of the provided `object`. Server-side, this method - * may simply print a string representation of the object. - * - * From MDN: - * "The method console.dir() displays an interactive list of the properties of the specified JavaScript object. The - * output is presented as a hierarchical listing with disclosure triangles that let you see the contents of child - * objects. In other words, console.dir() is the way to see all the properties of a specified JavaScript object in - * console by which the developer can easily get the properties of the object." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/dir - * - * @param obj The JavaScript object to print a directory of. - * @param options Options for the output. - */ - dir(obj?: any | unknown, options?: any): void { - throw throwNotSupported(); - } - - /** - * ## Console: `dirxml` - * - * Where supported, display an interactive tree of the properties of the provided `object`. Server-side, this method - * may simply print a string representation of the object. - * - * From MDN: - * "The console.dirxml() method displays an interactive tree of the descendant elements of the specified XML/HTML - * element. If it is not possible to display as an element the JavaScript Object view is shown instead. The output - * is presented as a hierarchical listing of expandable nodes that let you see the contents of child nodes." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/dirxml - * - * @param data Object to print a directory of. - */ - dirxml(...data: any[]): void { - throw throwNotSupported(); - } - - /** - * ## Console: `group` - * - * Create a new inline group within the output terminal, causing subsequent log messages to be enclosed within the - * declared group. Server-side, this method may be a no-op or may emit a regular log message. - * - * From MDN: - * "The console.group() method creates a new inline group in the Web console log, causing any subsequent console - * messages to be indented by an additional level, until console.groupEnd() is called." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/group - * - * @param label Label to display for the group. - */ - group(...label: any[]): void { - throw throwNotSupported(); - } - - /** - * ## Console: `groupCollapsed` - * - * Create a new inline group within the output terminal, causing subsequent log messages to be enclosed within the - * declared group. The group should display as collapsed by default. Server-side, this method may be a no-op or may - * emit a regular log message. - * - * From MDN: - * "The console.groupCollapsed() method creates a new inline group in the Web Console. Unlike console.group(), - * however, the new group is created collapsed. The user will need to use the disclosure button next to it to expand - * it, revealing the entries created in the group." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/groupCollapsed - * - * @param label Label to display for the group. - */ - groupCollapsed(...label: any[]): void { - throw throwNotSupported(); - } - - /** - * ## Console: `groupEnd` - * - * Finish the active inline log group, if active (otherwise, this method is a no-op). Server-side, this method may - * be a no-op or may emit a regular log message. - * - * From MDN: - * "The console.groupEnd() method exits the current inline group in the Web console. See Using groups in the console - * in the console documentation for details and examples." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/groupEnd - */ - groupEnd(): void { - throw throwNotSupported(); - } - - /** - * ## Console: `table` - * - * Emit a depiction of tabular data to the console, applying the provided `properties` to configure columns. - * - * From MDN: - * "The console.table() method displays tabular data as a table. This function takes one mandatory argument `data`, - * which must be an array or an object, and one additional optional parameter columns. It logs data as a table. Each - * element in the array (or enumerable property if data is an object) will be a row in the table." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/table - * - * @param tabularData Tabular data to display; must be an array of rows, or an object. - * @param properties Properties to consider as columns for the table. - */ - table(tabularData?: unknown, properties?: unknown): void { - throw throwNotSupported(); - } - - /** - * ## Console: `time` - * - * Starts a named timer for an arbitrary operation. - * - * From MDN: - * "The console.time() method starts a timer you can use to track how long an operation takes. You give each timer a - * unique name, and may have up to 10,000 timers running on a given page. When you call console.timeEnd() with the - * same name, the browser will output the time, in milliseconds, that elapsed since the timer was started." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/time - * - * @param label Label for the timer. - */ - time(label?: string | unknown): void { - throw throwNotSupported(); - } - - /** - * ## Console: `timeEnd` - * - * Concludes a named timer for an arbitrary operation, which was previously started with `time`. When this method is - * called, the timer result is typically logged. - * - * From MDN: - * "The console.timeEnd() stops a timer that was previously started by calling console.time()." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/timeEnd - * - * @param label Label for the timer. - */ - timeEnd(label?: string | unknown): void { - throw throwNotSupported(); - } - - /** - * ## Console: `timeLog` - * - * Log the time elapsed since the named timer was started, via `time`. The timer is not reset or otherwise modified - * when using this method. - * - * From MDN: - * "The console.timeLog() method logs the current value of a timer that was previously started by calling - * console.time()." - * - * See also: - * https://developer.mozilla.org/en-US/docs/Web/API/console/timeLog - * - * @param label Label for the timer. - */ - timeLog(label: string | unknown): void { - throw throwNotSupported(); - } -} - -/** JS bridge to the console intrinsics. */ -export class ConsoleBridge extends AbstractConsole { - // Acquire the intrinsic console so that we can proxy to it. - private acquireIntrinsic(): IConsole { - return globalContext["Console"] as IConsole; - } - - /** @inheritDoc */ - deliverLog(level: string, args: any[]) { - const intrinsic = this.acquireIntrinsic(); - switch (level) { - case 'trace': intrinsic.log(args); break; - case 'debug': intrinsic.log(args); break; - case 'info': intrinsic.info(args); break; - case 'warn': intrinsic.warn(args); break; - case 'error': intrinsic.error(args); break; - } - } -} - -/** Main `console` global. */ -export const console: IConsole = new ConsoleBridge(); - -declare global { - // @ts-ignore - export const console: IConsole; -} - -installGlobal('console', console); diff --git a/elide/runtime/js/intrinsics/crypto/crypto.ts b/elide/runtime/js/intrinsics/crypto/crypto.ts index a11bb56..1de7f5b 100644 --- a/elide/runtime/js/intrinsics/crypto/crypto.ts +++ b/elide/runtime/js/intrinsics/crypto/crypto.ts @@ -11,14 +11,15 @@ * License for the specific language governing permissions and limitations under the License. */ -import {globalContext, installGlobal} from "../base"; +import {installGlobal} from "../base"; import type {Crypto} from "../primordials"; +const { crypto } = primordials; /** * @return Crypto Intrinsic `Crypto` bridge. */ function resolveIntrinsic(): Crypto { - return globalContext['__elide_crypto'] as Crypto; + return crypto; } declare global { diff --git a/elide/runtime/js/intrinsics/url/URL.ts b/elide/runtime/js/intrinsics/url/URL.ts index f149d9e..6962edd 100644 --- a/elide/runtime/js/intrinsics/url/URL.ts +++ b/elide/runtime/js/intrinsics/url/URL.ts @@ -13,7 +13,8 @@ // noinspection JSUnusedGlobalSymbols -import type {Blob} from "../blob/Blob"; +import {Blob} from "../blob/Blob"; + // import type {IURLSearchParams} from "./IURLSearchParams"; // import type {URLSearchParams} from "./URLSearchParams"; import type {IURL, URLInputs} from "./IURL"; @@ -56,7 +57,7 @@ declare global { * @param obj `Blob`, or `File`, or `MediaSource` to create a URL for. * @return URL reference for the provided resource. */ - createObjectURL(obj: Blob): string; + createObjectURL(obj: typeof Blob): string; /** * Revoke a previously-issued temporary URL reference to a [File] or [Blob] object. diff --git a/elide/runtime/js/modules/assert/assert.ts b/elide/runtime/js/modules/assert/assert.ts index a01985b..8f65de7 100644 --- a/elide/runtime/js/modules/assert/assert.ts +++ b/elide/runtime/js/modules/assert/assert.ts @@ -17,14 +17,23 @@ * Provides assertion primitives for use in testing and debugging. */ -const intrinsic: any = globalThis['__Elide_node_assert__']; +const { + node_assert, + AssertionError: AssertionErrorSymbol, +} = primordials; + +if (!node_assert) { + throw new Error(`The 'assert' module failed to load its intrinsic API.`); +} + +const intrinsic: any = node_assert; /** * Type: `AssertionError` * * Represents an assertion failure. */ -export const AssertionError = globalThis['AssertionError']; +export const AssertionError = AssertionErrorSymbol; /** * Type: `AssertionErrorOptions`. @@ -57,19 +66,7 @@ export interface AssertionErrorOptions { * @see https://nodejs.org/api/assert.html#assertokvalue-message */ export function ok(condition: any, message?: string): void { - if (intrinsic) { - intrinsic.ok(condition, message); - } else { - if (!condition) { - throw new AssertionError({ - message: message || 'Assertion failed', - actual: condition, - expected: true, - operator: '==', - stackStartFn: ok - }); - } - } + intrinsic.ok(condition, message); } /** diff --git a/elide/runtime/js/modules/assert/strict/strict.ts b/elide/runtime/js/modules/assert/strict/strict.ts index 7662ef0..c3b78a7 100644 --- a/elide/runtime/js/modules/assert/strict/strict.ts +++ b/elide/runtime/js/modules/assert/strict/strict.ts @@ -17,7 +17,12 @@ * Provides assertion primitives for use in testing and debugging. */ -const intrinsic: any = globalThis['__Elide_node_assert_strict__']; +const { node_assert_strict } = primordials; +if (!node_assert_strict) { + throw new Error(`The 'assert/strict' module failed to load the intrinsic API.`); +} + +const intrinsic: any = node_assert_strict; /** * Type: `AssertionError` diff --git a/elide/runtime/js/modules/buffer/buffer.ts b/elide/runtime/js/modules/buffer/buffer.ts index 380d1a6..1cadd6d 100644 --- a/elide/runtime/js/modules/buffer/buffer.ts +++ b/elide/runtime/js/modules/buffer/buffer.ts @@ -17,6 +17,8 @@ * Provides a shim which offers a `Buffer` implementation that is compatible with Node.js-style imports. */ +const { node_buffer_module: node_buffer } = primordials; + /** * Maximum buffer size. */ @@ -92,7 +94,7 @@ export function resolveObjectURL(blob: Blob): string { * @returns The transcoded buffer. */ export function transcode(buffer: Buffer | Uint8Array, fromEnc: string, toEnc: string): Buffer { - throw new Error('Not implemented'); + return node_buffer.transcode(buffer, fromEnc, toEnc); } /** @@ -102,7 +104,7 @@ export function transcode(buffer: Buffer | Uint8Array, fromEnc: string, toEnc: s * @returns `true` if the buffer is valid UTF-8, otherwise `false`. */ export function isUtf8(buffer: Buffer | Uint8Array): boolean { - throw new Error('Not implemented'); + return node_buffer.isUtf8(buffer); } /** @@ -112,7 +114,7 @@ export function isUtf8(buffer: Buffer | Uint8Array): boolean { * @returns `true` if the buffer is valid ASCII, otherwise `false`. */ export function isAscii(buffer: Buffer | Uint8Array): boolean { - throw new Error('Not implemented'); + return node_buffer.isAscii(buffer); } /** @@ -126,7 +128,7 @@ export function isAscii(buffer: Buffer | Uint8Array): boolean { * For code running using Node.js APIs, converting between base64-encoded strings and binary data should be performed * using Buffer.from(str, 'base64') and buf.toString('base64'). */ -export const btoa = globalThis['btoa']; +export const btoa = node_buffer.btoa; /** * Decodes a string of Base64-encoded data into bytes, and encodes those bytes into a string using Latin-1 (ISO-8859-1). @@ -138,7 +140,7 @@ export const btoa = globalThis['btoa']; * code running using Node.js APIs, converting between base64-encoded strings and binary data should be performed * using Buffer.from(str, 'base64') and buf.toString('base64'). */ -export const atob = globalThis['atob']; +export const atob = node_buffer.atob; // `Buffer` is assigned as the default export. export default Buffer; diff --git a/elide/runtime/js/modules/elide/BUILD.bazel b/elide/runtime/js/modules/elide/BUILD.bazel new file mode 100644 index 0000000..e69de29 diff --git a/elide/runtime/js/modules/elide/sqlite/BUILD.bazel b/elide/runtime/js/modules/elide/sqlite/BUILD.bazel new file mode 100644 index 0000000..de48444 --- /dev/null +++ b/elide/runtime/js/modules/elide/sqlite/BUILD.bazel @@ -0,0 +1,16 @@ +load( + "//tools/defs:elide.bzl", + "js_module", +) +package( + default_visibility = ["//visibility:public"], +) + +js_module( + name = "sqlite", + elide_module = True, + srcs = [ + "sqlite.ts", + "index.ts", + ], +) diff --git a/elide/runtime/ts/entrypoint.ts b/elide/runtime/js/modules/elide/sqlite/index.ts similarity index 76% rename from elide/runtime/ts/entrypoint.ts rename to elide/runtime/js/modules/elide/sqlite/index.ts index 98ea390..f48a811 100644 --- a/elide/runtime/ts/entrypoint.ts +++ b/elide/runtime/js/modules/elide/sqlite/index.ts @@ -11,7 +11,4 @@ * License for the specific language governing permissions and limitations under the License. */ -import "@elide/runtime/js/intrinsics/console"; -import "@elide/runtime/js/intrinsics/base64"; -import "@elide/runtime/js/intrinsics/blob"; -import "@elide/runtime/js/intrinsics/url"; +export * from "./sqlite"; diff --git a/elide/runtime/js/modules/elide/sqlite/package.json b/elide/runtime/js/modules/elide/sqlite/package.json new file mode 100644 index 0000000..1469ca5 --- /dev/null +++ b/elide/runtime/js/modules/elide/sqlite/package.json @@ -0,0 +1,12 @@ +{ + "name": "elide:sqlite", + "type": "module", + "module": "sqlite.mjs", + "main": "sqlite.cjs", + "exports": { + ".": { + "import": "./sqlite.mjs", + "require": "./sqlite.cjs" + } + } +} diff --git a/elide/runtime/js/modules/elide/sqlite/sqlite.ts b/elide/runtime/js/modules/elide/sqlite/sqlite.ts new file mode 100644 index 0000000..e9302d0 --- /dev/null +++ b/elide/runtime/js/modules/elide/sqlite/sqlite.ts @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2024 Elide Technologies, Inc. + * + * Licensed under the MIT license (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://opensource.org/license/mit/ + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under the License. + */ + +const { sqlite_Database } = primordials; +if (!sqlite_Database) { + throw new Error(`The 'sqlite' module failed to load its intrinsic API.`); +} + +/** + * Class: `Database`. + * + * Main database handle class. + */ +export const Database = sqlite_Database; diff --git a/elide/runtime/js/modules/esbuild.config.js b/elide/runtime/js/modules/esbuild.config.js index 35622db..d93c1a3 100644 --- a/elide/runtime/js/modules/esbuild.config.js +++ b/elide/runtime/js/modules/esbuild.config.js @@ -22,7 +22,7 @@ module.exports = { platform: "neutral", footer: { js: ( - "// Elide JS Builtins. Copyright (c) 2023, Sam Gammon and the Elide Project Authors. All rights reserved." + + "// Elide JS Builtins. Copyright (c) 2023-2024, Sam Gammon and Elide Technologies, Inc. All rights reserved." + "\n// Components of this software are licensed separately. See https://github.com/elide-dev/elide for more." ), } diff --git a/elide/runtime/js/modules/events/events.ts b/elide/runtime/js/modules/events/events.ts index 9af445e..4823d56 100644 --- a/elide/runtime/js/modules/events/events.ts +++ b/elide/runtime/js/modules/events/events.ts @@ -17,7 +17,13 @@ * Provides event handling primitives. */ -const intrinsic: any = globalThis['__Elide_node_events__']; +const { node_events } = primordials; + +if (!node_events) { + throw new Error(`The 'events' module failed to load its intrinsic API.`); +} + +const intrinsic: any = node_events; /** * The `Event` class. diff --git a/elide/runtime/js/modules/fs/fs.ts b/elide/runtime/js/modules/fs/fs.ts index cf76a3d..f8f6445 100644 --- a/elide/runtime/js/modules/fs/fs.ts +++ b/elide/runtime/js/modules/fs/fs.ts @@ -17,7 +17,17 @@ * Provides a shim which offers a `fs` module implementation that is compatible with Node.js-style imports. */ -const internals: any = globalThis['__Elide_node_fs__'](); +const { node_fs } = primordials; + +if (!node_fs) { + throw new Error(`The 'fs' module failed to load its intrinsic API.`); +} + +const intrinsic: any = node_fs(); + +function internalsAccessor(): any { + return intrinsic; +} /** * File system constants @@ -138,7 +148,7 @@ export const StatWatcher = globalThis['StatWatcher']; * @param callback Callback function to dispatch with failures */ export function access(path: string | Buffer | URL, mode: number = constants.F_OK, callback: (err: NodeJS.ErrnoException) => void): void { - internals.access(path, callback); + internalsAccessor().access(path, callback); } /** @@ -153,7 +163,7 @@ export function access(path: string | Buffer | URL, mode: number = constants.F_O * @param mode Mode to check; defaults to `fs.constants.F_OK` */ export function accessSync(path: string | Buffer | URL, mode: number = constants.F_OK): void { - internals.accessSync(path, mode); + internalsAccessor().accessSync(path, mode); } /** @@ -167,7 +177,7 @@ export function accessSync(path: string | Buffer | URL, mode: number = constants * @param callback Callback function to dispatch with the file contents */ export function appendFile(path: string | Buffer | URL, data: any, options: { encoding: string; mode?: number; flag?: string; }, callback: (err: NodeJS.ErrnoException) => void): void { - internals.appendFile(path, data, options, callback); + internalsAccessor().appendFile(path, data, options, callback); } /** @@ -180,7 +190,7 @@ export function appendFile(path: string | Buffer | URL, data: any, options: { en * @param options Options for appending to the file */ export function appendFileSync(path: string | Buffer | URL, data: any, options: { encoding: string; mode?: number; flag?: string; }): void { - internals.appendFileSync(path, data, options); + internalsAccessor().appendFileSync(path, data, options); } /** @@ -193,7 +203,7 @@ export function appendFileSync(path: string | Buffer | URL, data: any, options: * @param callback Callback function to dispatch with failures */ export function chmod(path: string | Buffer | URL, mode: number, callback: (err: NodeJS.ErrnoException) => void): void { - internals.chmod(path, mode, callback); + internalsAccessor().chmod(path, mode, callback); } /** @@ -205,7 +215,7 @@ export function chmod(path: string | Buffer | URL, mode: number, callback: (err: * @param mode Mode to set */ export function chmodSync(path: string | Buffer | URL, mode: number): void { - internals.chmodSync(path, mode); + internalsAccessor().chmodSync(path, mode); } /** @@ -219,7 +229,7 @@ export function chmodSync(path: string | Buffer | URL, mode: number): void { * @param callback Callback function to dispatch with failures */ export function chown(path: string | Buffer | URL, uid: number, gid: number, callback: (err: NodeJS.ErrnoException) => void): void { - internals.chown(path, uid, gid, callback); + internalsAccessor().chown(path, uid, gid, callback); } /** @@ -232,7 +242,7 @@ export function chown(path: string | Buffer | URL, uid: number, gid: number, cal * @param gid Group ID to set */ export function chownSync(path: string | Buffer | URL, uid: number, gid: number): void { - internals.chownSync(path, uid, gid); + internalsAccessor().chownSync(path, uid, gid); } /** @@ -247,7 +257,7 @@ export function chownSync(path: string | Buffer | URL, uid: number, gid: number) * @param callback Callback function to dispatch with failures */ export function open(path: string | Buffer | URL, flags: string | number, mode: number, callback: (err: NodeJS.ErrnoException, fd: number) => void): void { - internals.open(path, flags, mode, callback); + internalsAccessor().open(path, flags, mode, callback); } /** @@ -261,7 +271,7 @@ export function open(path: string | Buffer | URL, flags: string | number, mode: * @returns The file descriptor */ export function openSync(path: string | Buffer | URL, flags: string | number, mode: number): number { - return internals.openSync(path, flags, mode); + return internalsAccessor().openSync(path, flags, mode); } /** @@ -273,7 +283,7 @@ export function openSync(path: string | Buffer | URL, flags: string | number, mo * @param callback Callback function to dispatch with failures */ export function close(fd: number, callback: (err: NodeJS.ErrnoException) => void): void { - internals.close(fd, callback); + internalsAccessor().close(fd, callback); } /** @@ -284,7 +294,7 @@ export function close(fd: number, callback: (err: NodeJS.ErrnoException) => void * @param fd File descriptor to close */ export function closeSync(fd: number): void { - internals.closeSync(fd); + internalsAccessor().closeSync(fd); } /** @@ -298,7 +308,7 @@ export function closeSync(fd: number): void { * @param callback Callback function to dispatch with failures */ export function copyFile(src: string | Buffer | URL, dest: string | Buffer | URL, flags: number, callback: (err: NodeJS.ErrnoException) => void): void { - internals.copyFile(src, dest, flags, callback); + internalsAccessor().copyFile(src, dest, flags, callback); } /** @@ -311,7 +321,7 @@ export function copyFile(src: string | Buffer | URL, dest: string | Buffer | URL * @param flags Flags for copying the file */ export function copyFileSync(src: string | Buffer | URL, dest: string | Buffer | URL, flags: number): void { - internals.copyFileSync(src, dest, flags); + internalsAccessor().copyFileSync(src, dest, flags); } /** @@ -323,7 +333,7 @@ export function copyFileSync(src: string | Buffer | URL, dest: string | Buffer | * @param callback Callback function to dispatch with the result */ export function exists(path: string | Buffer | URL, callback: (exists: boolean) => void): void { - internals.exists(path, callback); + internalsAccessor().exists(path, callback); } /** @@ -335,7 +345,7 @@ export function exists(path: string | Buffer | URL, callback: (exists: boolean) * @returns Whether the path exists */ export function existsSync(path: string | Buffer | URL): boolean { - return internals.existsSync(path); + return internalsAccessor().existsSync(path); } /** @@ -359,9 +369,9 @@ export type MkdirOptions = { recursive?: boolean; mode?: number; } */ export function mkdir(path: string | Buffer | URL, optionsOrCallback: MkdirCallback | MkdirOptions, callback?: MkdirCallback): void { if (callback) { - internals.mkdir(path, optionsOrCallback as MkdirOptions, callback); + internalsAccessor().mkdir(path, optionsOrCallback as MkdirOptions, callback); } else { - internals.mkdir(path, optionsOrCallback as MkdirCallback); + internalsAccessor().mkdir(path, optionsOrCallback as MkdirCallback); } } @@ -374,7 +384,7 @@ export function mkdir(path: string | Buffer | URL, optionsOrCallback: MkdirCallb * @param options Options for creating the directory */ export function mkdirSync(path: string | Buffer | URL, options?: { recursive: boolean; mode?: number; }): void { - internals.mkdirSync(path, options); + internalsAccessor().mkdirSync(path, options); } /** @@ -387,7 +397,7 @@ export function mkdirSync(path: string | Buffer | URL, options?: { recursive: bo * @param callback Callback function to dispatch with the file contents */ export function readFile(path: string | Buffer | URL, options: { encoding: string; flag?: string; }, callback: (err: NodeJS.ErrnoException, data: string) => void): void { - internals.readFile(path, options, callback); + internalsAccessor().readFile(path, options, callback); } /** @@ -400,7 +410,7 @@ export function readFile(path: string | Buffer | URL, options: { encoding: strin * @returns The file contents */ export function readFileSync(path: string | Buffer | URL, options?: string | { encoding?: string; flag?: string; }): string { - return internals.readFileSync(path, options || null); + return internalsAccessor().readFileSync(path, options || null); } /** @@ -414,7 +424,7 @@ export function readFileSync(path: string | Buffer | URL, options?: string | { e * @param callback Callback function to dispatch with the file contents */ export function writeFile(path: string | Buffer | URL, data: any, options: { encoding: string; mode?: number; flag?: string; }, callback: (err: NodeJS.ErrnoException) => void): void { - internals.writeFile(path, data, options, callback); + internalsAccessor().writeFile(path, data, options, callback); } /** @@ -427,7 +437,7 @@ export function writeFile(path: string | Buffer | URL, data: any, options: { enc * @param options Options for writing the file */ export function writeFileSync(path: string | Buffer | URL, data: any, options: { encoding: string; mode?: number; flag?: string; }): void { - internals.writeFileSync(path, data, options); + internalsAccessor().writeFileSync(path, data, options); } export default { diff --git a/elide/runtime/js/modules/fs/promises.ts b/elide/runtime/js/modules/fs/promises.ts deleted file mode 100644 index 758de6e..0000000 --- a/elide/runtime/js/modules/fs/promises.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Intrinsic: Filesystem (Promises). - * - * Provides a shim which offers a `fs/promises` module implementation that is compatible with Node.js-style imports. - */ - -export default {}; - diff --git a/elide/runtime/js/modules/fs/promises/fs-async.ts b/elide/runtime/js/modules/fs/promises/fs-async.ts index 452e815..37c3541 100644 --- a/elide/runtime/js/modules/fs/promises/fs-async.ts +++ b/elide/runtime/js/modules/fs/promises/fs-async.ts @@ -17,7 +17,17 @@ * Provides a shim which offers a `fs/promises` module implementation that is compatible with Node.js-style imports. */ -const internals: any = globalThis['__Elide_node_fs_promises__'](); +const { node_fs_promises } = primordials; + +if (!node_fs_promises) { + throw new Error(`The 'fs/promises' module failed to load its intrinsic API.`); +} + +const intrinsic: any = node_fs_promises(); + +function internalsAccessor(): any { + return intrinsic; +} /** * File system constants @@ -42,7 +52,7 @@ const constants = { * @returns A promise that resolves if the file is accessible */ export function access(path: string | Buffer | URL, mode: number = constants.F_OK): Promise<void> { - return internals.access(path, mode); + return internalsAccessor().access(path, mode); } /** @@ -55,7 +65,7 @@ export function access(path: string | Buffer | URL, mode: number = constants.F_O * @returns A promise that resolves with the file contents */ export function readFile(path: string | Buffer | URL, options: { encoding: string; flag?: string; }): Promise<string> { - return internals.readFile(path, options); + return internalsAccessor().readFile(path, options); } /** @@ -69,7 +79,7 @@ export function readFile(path: string | Buffer | URL, options: { encoding: strin * @returns A promise that resolves when the file is written */ export function writeFile(path: string | Buffer | URL, data: string | Buffer | Uint8Array, options: { encoding: string; flag?: string; }): Promise<void> { - return internals.writeFile(path, data, options); + return internalsAccessor().writeFile(path, data, options); } /** @@ -84,7 +94,7 @@ export function writeFile(path: string | Buffer | URL, data: string | Buffer | U * @returns A promise that resolves when the directory is created */ export function mkdir(path: string | Buffer | URL, options: { recursive: boolean; }): Promise<void> { - return internals.mkdir(path, options); + return internalsAccessor().mkdir(path, options); } export default { diff --git a/elide/runtime/js/modules/os/os.ts b/elide/runtime/js/modules/os/os.ts index e522e39..4a1e724 100644 --- a/elide/runtime/js/modules/os/os.ts +++ b/elide/runtime/js/modules/os/os.ts @@ -17,13 +17,13 @@ * Provides a shim which offers a `os` module implementation that is compatible with Node.js-style imports. */ +const { node_os } = primordials; +if (!node_os) { + throw new Error(`The 'os' module failed to load the intrinsic API.`); +} + function intrinsic(): any { - // @ts-expect-error intrinsic symbol - const api = __Elide_node_os__; - if (!api) { - throw new Error(`The 'os' module failed to load the intrinsic API.`); - } - return api || {}; + return node_os; } /** diff --git a/elide/runtime/js/modules/path/path.ts b/elide/runtime/js/modules/path/path.ts index 6d6af86..a4c8160 100644 --- a/elide/runtime/js/modules/path/path.ts +++ b/elide/runtime/js/modules/path/path.ts @@ -17,7 +17,13 @@ * Provides a shim which offers a `path` module implementation that is compatible with Node.js-style imports. */ -const internals: any = globalThis['__Elide_node_path__']; +const { node_path } = primordials; + +if (!node_path) { + throw new Error(`The 'path' module failed to load its intrinsic API.`); +} + +const internals: any = node_path; /** * Represents an object with path properties. diff --git a/elide/runtime/js/modules/process/process.ts b/elide/runtime/js/modules/process/process.ts index fc4cef5..5adc5de 100644 --- a/elide/runtime/js/modules/process/process.ts +++ b/elide/runtime/js/modules/process/process.ts @@ -17,10 +17,14 @@ * Provides a shim which offers a `process` module implementation that is compatible with Node.js-style imports. */ +const { node_process } = primordials; + +if (!node_process) { + throw new Error(`The 'process' module failed to load its intrinsic API.`); +} + function intrinsic(): any { - const api = globalThis['__Elide_node_process__']; - if (!api) throw new Error(`The 'process' module failed to load the intrinsic API.`); - return api || {}; + return node_process; } /** diff --git a/elide/runtime/js/modules/timers/BUILD.bazel b/elide/runtime/js/modules/timers/BUILD.bazel index e69de29..4e62349 100644 --- a/elide/runtime/js/modules/timers/BUILD.bazel +++ b/elide/runtime/js/modules/timers/BUILD.bazel @@ -0,0 +1,15 @@ +load( + "//tools/defs:elide.bzl", + "js_module", +) +package( + default_visibility = ["//visibility:public"], +) + +js_module( + name = "timers", + srcs = [ + "timers.ts", + "index.ts", + ], +) diff --git a/elide/runtime/js/modules/timers/index.ts b/elide/runtime/js/modules/timers/index.ts new file mode 100644 index 0000000..bd82c29 --- /dev/null +++ b/elide/runtime/js/modules/timers/index.ts @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2024 Elide Technologies, Inc. + * + * Licensed under the MIT license (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://opensource.org/license/mit/ + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under the License. + */ + +export * from "./timers"; diff --git a/elide/runtime/js/modules/timers/package.json b/elide/runtime/js/modules/timers/package.json new file mode 100644 index 0000000..1459aee --- /dev/null +++ b/elide/runtime/js/modules/timers/package.json @@ -0,0 +1,12 @@ +{ + "name": "timers", + "type": "module", + "module": "timers.mjs", + "main": "timers.cjs", + "exports": { + ".": { + "import": "./timers.mjs", + "require": "./timers.cjs" + } + } +} diff --git a/elide/runtime/js/modules/timers/timers.ts b/elide/runtime/js/modules/timers/timers.ts new file mode 100644 index 0000000..f058f0d --- /dev/null +++ b/elide/runtime/js/modules/timers/timers.ts @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2024 Elide Technologies, Inc. + * + * Licensed under the MIT license (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://opensource.org/license/mit/ + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under the License. + */ + +/** + * Intrinsic: Timers. + * + * Implements timers using async functions. + */ + +export {}; diff --git a/elide/runtime/js/modules/url/url.ts b/elide/runtime/js/modules/url/url.ts index 17670b2..7aebc3c 100644 --- a/elide/runtime/js/modules/url/url.ts +++ b/elide/runtime/js/modules/url/url.ts @@ -17,7 +17,8 @@ * Implements URL parsing and formatting. */ -const internals: any = globalThis['__Elide_node_url__']; +const { node_url } = primordials; +const internals: any = node_url; // Re-export built-in URL intrinsic. export const URL = globalThis['URL']; diff --git a/elide/runtime/js/polyfills/BUILD.bazel b/elide/runtime/js/polyfills/BUILD.bazel index 6aa26e1..2f4bc5d 100644 --- a/elide/runtime/js/polyfills/BUILD.bazel +++ b/elide/runtime/js/polyfills/BUILD.bazel @@ -16,10 +16,11 @@ package( POLYFILLS = { "abort-controller": ["abort-controller.js"], "buffer": ["base64.js", "buffer.js", "ieee754.js"], - "event": ["event-target.js"], "once": ["once.js"], "readable-stream": ["readable-stream.mjs"], - "text-encoder": ["textencoder.js"], + # --- Disabled (Implemented Natively) ------- + # "event": ["event-target.js"], + # "text-encoder": ["textencoder.js"], } [filegroup(name = n[0], srcs = n[1]) for n in POLYFILLS.items()] diff --git a/elide/runtime/js/polyfills/polyfills.js b/elide/runtime/js/polyfills/polyfills.js index 1ad4ddc..20fb917 100644 --- a/elide/runtime/js/polyfills/polyfills.js +++ b/elide/runtime/js/polyfills/polyfills.js @@ -13,7 +13,5 @@ import "./abort-controller.js"; import "./buffer.js"; -import "./event-target.js"; import "./once.js"; import "./readable-stream.mjs"; -import "./textencoder.js"; diff --git a/elide/runtime/js/preload.js b/elide/runtime/js/preload.js new file mode 100644 index 0000000..7bc620f --- /dev/null +++ b/elide/runtime/js/preload.js @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2024 Elide Technologies, Inc. + * + * Licensed under the MIT license (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://opensource.org/license/mit/ + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under the License. + */ + +goog.module('elide.runtime.js.preload'); + +const nodeModules = [ + 'assert', + 'assert/strict', + 'buffer', + 'child_process', + 'cluster', + 'console', + 'crypto', + 'dgram', + 'diagnostics_channel', + 'dns', + 'dns/promises', + 'domain', + 'events', + 'fs', + 'fs/promises', + 'http', + 'http2', + 'https', + 'inspector', + 'module', + 'net', + 'os', + 'path', + 'perf_hooks', + 'process', + 'querystring', + 'readline', + 'stream', + 'stream/promises', + 'string_decoder', + 'timers', + 'timers/promises', + 'tls', + 'trace_events', + 'tty', + 'url', + 'util', + 'v8', + 'vm', + 'wasi', + 'worker_threads', + 'zlib' +]; + +const elideModules = [ + 'sqlite' +]; + +/** + * Preload all modules. + */ +function preload() { + try { + for (const module of nodeModules) { + require(`node:${module}`); + import(`node:${module}`); + require(`${module}`); + import(`${module}`); + } + } catch (err) {} + + try { + for (const module of elideModules) { + require(`elide:${module}`); + import(`elide:${module}`); + } + } catch (err) {} +} + +preload(); diff --git a/elide/runtime/js/tsconfig.runtime.json b/elide/runtime/js/tsconfig.runtime.json index 8f22af2..f93795b 100644 --- a/elide/runtime/js/tsconfig.runtime.json +++ b/elide/runtime/js/tsconfig.runtime.json @@ -54,6 +54,8 @@ "ES2021.Promise", "es2021.intl", "esnext" - ] + ], + // Mount local type declarations. + "typeRoots": ["./types"], } } diff --git a/elide/runtime/python/BUILD.bazel b/elide/runtime/python/BUILD.bazel new file mode 100644 index 0000000..f188ff9 --- /dev/null +++ b/elide/runtime/python/BUILD.bazel @@ -0,0 +1,24 @@ +load( + "//tools/defs:elide.bzl", + "py_runtime", + "runtime_dist", +) + +PYTHON_BUILTINS = [ + "sqlite3", +] + +py_runtime( + name = "runtime", + deps = ["//elide/runtime/python/%s" % m for m in PYTHON_BUILTINS], +) + +## -- Distribution -- ## + +runtime_dist( + name = "dist", + language = "py", + manifest = "MANIFEST.MF", + target = ":runtime", + modules = ["//elide/runtime/python/%s" % m for m in PYTHON_BUILTINS], +) diff --git a/elide/runtime/python/MANIFEST.MF b/elide/runtime/python/MANIFEST.MF new file mode 100644 index 0000000..5bde93c --- /dev/null +++ b/elide/runtime/python/MANIFEST.MF @@ -0,0 +1,14 @@ +Manifest-Version: 1.0 +Created-By: Elide (https://elide.dev) +Specification-Title: Elide Runtime +Specification-Version: 1.0 +Specification-Vendor: Elide Ventures, Inc. +Sealed: true +Elide-Runtime-ID: PY +Elide-Runtime-Version: 3.0 +Name: elide/runtime/python/ +Specification-Title: Elide Runtime for Python +Specification-Version: 1.0 +Specification-Vendor: Elide Ventures, Inc. +Name: elide/runtime/python/py.runtime.tar.gz +Content-Type: application/python;encoding=gzip;elide-runtime diff --git a/elide/runtime/python/elide/__init__.py b/elide/runtime/python/elide/__init__.py new file mode 100644 index 0000000..cb46749 --- /dev/null +++ b/elide/runtime/python/elide/__init__.py @@ -0,0 +1,18 @@ +# -~- coding: utf-8 -~- + +# Copyright (c) 2024 Elide Technologies, Inc. +# +# Licensed under the MIT license (the "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://opensource.org/license/mit/ +# +# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on +# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under the License. + +""" + Defines Elide-specific APIs. +""" + +hello = "hi" diff --git a/elide/runtime/python/sqlite3/BUILD.bazel b/elide/runtime/python/sqlite3/BUILD.bazel new file mode 100644 index 0000000..5fe02c1 --- /dev/null +++ b/elide/runtime/python/sqlite3/BUILD.bazel @@ -0,0 +1,12 @@ +load( + "//tools:defs.bzl", + "py_library", +) +package( + default_visibility = ["//visibility:public"], +) + +py_library( + name = "sqlite3", + srcs = ["__init__.py"], +) diff --git a/elide/runtime/python/sqlite3/__init__.py b/elide/runtime/python/sqlite3/__init__.py new file mode 100644 index 0000000..9fca137 --- /dev/null +++ b/elide/runtime/python/sqlite3/__init__.py @@ -0,0 +1,19 @@ +# -~- coding: utf-8 -~- + +# Copyright (c) 2024 Elide Technologies, Inc. +# +# Licensed under the MIT license (the "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://opensource.org/license/mit/ +# +# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on +# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under the License. + +""" + Defines the Python-side SQLite3 API for use in Elide; roughly follows the standardized + Python `sqlite3` module API. +""" + +hello = "hi" diff --git a/elide/runtime/ts/BUILD.bazel b/elide/runtime/ts/BUILD.bazel deleted file mode 100644 index 77c860c..0000000 --- a/elide/runtime/ts/BUILD.bazel +++ /dev/null @@ -1,59 +0,0 @@ -package( - default_visibility = ["//visibility:public"], -) - -load( - "//tools:defs.bzl", - "ts_config", - "ts_library", -) -load( - "//tools/defs:elide.bzl", - "ts_runtime", -) -load( - "//elide/runtime/js:config.bzl", - "TS_MODULES", -) - -MODULE_NAME = "elide.runtime.ts" - -## -- Configuration -- ## - -filegroup( - name = "runtime_tsconfig_ts_json", - srcs = ["tsconfig.ts.json"], -) - -ts_config( - name = "tsconfig", - src = ":runtime_tsconfig_ts_json", - deps = ["//:tsconfig"], -) - -## -- Entrypoints -- ## - -ts_runtime( - name = "entrypoint-ts", - main = "entrypoint.ts", - ts_config = ":tsconfig", - deps = TS_MODULES + [ - "@npm//tslib", - ], - closure_deps = [ - "//third_party/google/tsickle:bridge", - "//third_party/google/tsickle:tslib", - ] + [ - "//elide/runtime/js/intrinsics:base64_js", - "//elide/runtime/js/intrinsics:console_js", - "//elide/runtime/js/intrinsics/url:url_js", - ], - extra_sources = [ - "//third_party/microsoft/typescript/tsc", - ], -) - -alias( - name = "ts", - actual = "entrypoint-ts", -) diff --git a/elide/runtime/ts/tsconfig.ts.json b/elide/runtime/ts/tsconfig.ts.json deleted file mode 100644 index d6a0d60..0000000 --- a/elide/runtime/ts/tsconfig.ts.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "extends": "../../../tsconfig.base.json", - "compilerOptions": { - "allowJs": false, - "checkJs": false, - "declaration": true, - "paths": { - "@elide/runtime/*": [ - "../*", - "./bazel-out/host/bin/elide/runtime/*", - "./bazel-out/k8-fastbuild/bin/elide/runtime/*", - "./bazel-out/k8-opt/bin/elide/runtime/*", - "./bazel-out/k8-dbg/bin/elide/runtime/*", - "./bazel-out/k8_amd64-fastbuild/bin/elide/runtime/*", - "./bazel-out/k8_amd64-opt/bin/elide/runtime/*", - "./bazel-out/k8_amd64-dbg/bin/elide/runtime/*", - "./bazel-out/darwin_amd64-opt/bin/elide/runtime/*", - "./bazel-out/darwin_amd64-dbg/bin/elide/runtime/*", - "./bazel-out/darwin_amd64-fastbuild/bin/elide/runtime/*", - "./bazel-out/darwin_arm64-opt/bin/elide/runtime/*", - "./bazel-out/darwin_arm64-dbg/bin/elide/runtime/*", - "./bazel-out/darwin_arm64-fastbuild/bin/elide/runtime/*" - ], - "//*": [ - "../../*", - "./bazel-out/host/bin/*", - "./bazel-out/k8-fastbuild/bin/*", - "./bazel-out/k8-opt/bin/*", - "./bazel-out/k8-dbg/bin/*", - "./bazel-out/k8_amd64-fastbuild/bin/*", - "./bazel-out/k8_amd64-opt/bin/*", - "./bazel-out/k8_amd64-dbg/bin/*", - "./bazel-out/darwin_amd64-opt/bin/*", - "./bazel-out/darwin_amd64-dbg/bin/*", - "./bazel-out/darwin_amd64-fastbuild/bin/*", - "./bazel-out/darwin_arm64-opt/bin/*", - "./bazel-out/darwin_arm64-dbg/bin/*", - "./bazel-out/darwin_arm64-fastbuild/bin/*" - ] - }, - // Library Environment - "lib": [ - "es5", - "es6", - "es2015", - "es2016", - "es2017", - "es2018", - "es2019", - "es2020", - "es2021", - "ES2021.Promise", - "es2021.intl", - "esnext" - ] - } -} diff --git a/external/google/closure/externs.bzl b/external/google/closure/externs.bzl index 2bbecd5..4284344 100644 --- a/external/google/closure/externs.bzl +++ b/external/google/closure/externs.bzl @@ -1,8 +1,3 @@ - -package( - default_visibility = ["//visibility:public"], -) - load( "@elide//tools:defs.bzl", "closure_extern", @@ -10,6 +5,10 @@ load( "js_extern", ) +package( + default_visibility = ["//visibility:public"], +) + ## Externs: ECMAScript 3, 5, and 6. ## ---------------------------------------------- ## Always included by Closure Compiler (implied). diff --git a/package.json b/package.json index 1c2a4e4..dd258b7 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "@bazel/ibazel": "0.16.2", "@bazel/labs": "4.6.1", "@bazel/typescript": "4.6.2", - "@types/node": "20.12.11", + "@types/node": "20.14.2", "@types/source-map-support": "0.5.10", "esbuild": "0.21.2", "google-closure-library-types": "0.1.17", @@ -25,8 +25,11 @@ "protobufjs": "7.3.0", "source-map-support": "0.5.21", "tsickle": "0.46.3", - "tslib": "2.6.2", + "tslib": "2.6.3", "tsutils": "3.21.0", "typescript": "4.9.5" + }, + "resolutions": { + "esbuild": "0.21.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab0b41d..82bfcfe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,1080 +1,109 @@ -lockfileVersion: '9.0' +lockfileVersion: '6.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false -importers: - - .: - devDependencies: - '@bazel/buildifier': - specifier: 6.1.2 - version: 7.1.1 - '@bazel/buildozer': - specifier: 6.1.2 - version: 7.1.1 - '@bazel/concatjs': - specifier: 4.6.2 - version: 5.8.1(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@5.1.0(karma@6.4.3))(karma-junit-reporter@2.0.1(karma@6.4.3))(karma-requirejs@1.1.0(karma@6.4.3)(requirejs@2.3.6))(karma-sourcemap-loader@0.4.0)(karma@6.4.3)(typescript@5.4.5) - '@bazel/esbuild': - specifier: 4.6.2 - version: 5.8.1 - '@bazel/ibazel': - specifier: 0.16.2 - version: 0.25.0 - '@bazel/labs': - specifier: 4.6.1 - version: 4.6.1 - '@bazel/typescript': - specifier: 4.6.2 - version: 5.8.1(typescript@5.4.5) - '@types/node': - specifier: 20.12.11 - version: 20.12.11 - '@types/source-map-support': - specifier: 0.5.10 - version: 0.5.10 - esbuild: - specifier: 0.21.2 - version: 0.21.2 - google-closure-library-types: - specifier: 0.1.17 - version: 0.1.17 - karma: - specifier: 6.4.3 - version: 6.4.3 - karma-chrome-launcher: - specifier: 3.2.0 - version: 3.2.0 - karma-firefox-launcher: - specifier: 2.1.3 - version: 2.1.3 - karma-jasmine: - specifier: 5.1.0 - version: 5.1.0(karma@6.4.3) - karma-junit-reporter: - specifier: 2.0.1 - version: 2.0.1(karma@6.4.3) - karma-requirejs: - specifier: 1.1.0 - version: 1.1.0(karma@6.4.3)(requirejs@2.3.6) - karma-sourcemap-loader: - specifier: 0.4.0 - version: 0.4.0 - protobufjs: - specifier: 7.3.0 - version: 7.3.0 - source-map-support: - specifier: 0.5.21 - version: 0.5.21 - tsickle: - specifier: 0.46.3 - version: 0.46.3(typescript@5.4.5) - tslib: - specifier: 2.6.2 - version: 2.6.2 - tsutils: - specifier: 3.21.0 - version: 3.21.0(typescript@5.4.5) - typescript: - specifier: 4.9.5 - version: 5.4.5 +overrides: + esbuild: 0.21.2 + +devDependencies: + '@bazel/buildifier': + specifier: 6.1.2 + version: 6.1.2 + '@bazel/buildozer': + specifier: 6.1.2 + version: 6.1.2 + '@bazel/concatjs': + specifier: 4.6.2 + version: 4.6.2(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@5.1.0)(karma-junit-reporter@2.0.1)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.4.0)(karma@6.4.3)(typescript@4.9.5) + '@bazel/esbuild': + specifier: 4.6.2 + version: 4.6.2 + '@bazel/ibazel': + specifier: 0.16.2 + version: 0.16.2 + '@bazel/labs': + specifier: 4.6.1 + version: 4.6.1 + '@bazel/typescript': + specifier: 4.6.2 + version: 4.6.2(typescript@4.9.5) + '@types/node': + specifier: 20.14.2 + version: 20.14.2 + '@types/source-map-support': + specifier: 0.5.10 + version: 0.5.10 + esbuild: + specifier: 0.21.2 + version: 0.21.2 + google-closure-library-types: + specifier: 0.1.17 + version: 0.1.17 + karma: + specifier: 6.4.3 + version: 6.4.3 + karma-chrome-launcher: + specifier: 3.2.0 + version: 3.2.0 + karma-firefox-launcher: + specifier: 2.1.3 + version: 2.1.3 + karma-jasmine: + specifier: 5.1.0 + version: 5.1.0(karma@6.4.3) + karma-junit-reporter: + specifier: 2.0.1 + version: 2.0.1(karma@6.4.3) + karma-requirejs: + specifier: 1.1.0 + version: 1.1.0(karma@6.4.3)(requirejs@2.3.6) + karma-sourcemap-loader: + specifier: 0.4.0 + version: 0.4.0 + protobufjs: + specifier: 7.3.0 + version: 7.3.0 + source-map-support: + specifier: 0.5.21 + version: 0.5.21 + tsickle: + specifier: 0.46.3 + version: 0.46.3(typescript@4.9.5) + tslib: + specifier: 2.6.3 + version: 2.6.3 + tsutils: + specifier: 3.21.0 + version: 3.21.0(typescript@4.9.5) + typescript: + specifier: 4.9.5 + version: 4.9.5 packages: - '@bazel/buildifier@7.1.1': - resolution: {integrity: sha512-Up4m88XqBea01zvejR/1dNfFtEJp64f7kgodPUNtVOzHKt+CguVG8yTnyWAb/N0mI2ImrXVxgxglIWymfQRjqQ==, tarball: https://registry.npmjs.org/@bazel/buildifier/-/buildifier-7.1.1.tgz} + /@bazel/buildifier@6.1.2: + resolution: {integrity: sha512-psKePmRkP6acwyePOhXP67R/wdwN7BGJxHqp1j5myaO24feMsaXyyiO+oW49x8YAwOpKVSCujVzkTwX2auAc0A==} hasBin: true + dev: true - '@bazel/buildozer@7.1.1': - resolution: {integrity: sha512-2hA13haX4+euWnyHSjIW5e24bGc3ZohyUX2Z+M74I6vCyDd+1chMoWdH+BKOz7EDBhznrazHKN+IRPD5N49V+w==, tarball: https://registry.npmjs.org/@bazel/buildozer/-/buildozer-7.1.1.tgz} + /@bazel/buildozer@6.1.2: + resolution: {integrity: sha512-Ev9yXHMw93CF3k/gyHwOA3UCZCQ9qPry0WHxD+wjUSf8go3PqMbtq9sWWiyBlZP5KtRWUF/aQxmtF/AHdFdniQ==} hasBin: true + dev: true - '@bazel/concatjs@5.8.1': - resolution: {integrity: sha512-TkARsNUxgi3bjFeGwIGlffmQglNhuR9qK9uE7uKhdBZvQE5caAWVCjYiMTzo3viKDhwKn5QNRcHY5huuJMVFfA==, tarball: https://registry.npmjs.org/@bazel/concatjs/-/concatjs-5.8.1.tgz} - hasBin: true + /@bazel/concatjs@4.6.2(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@5.1.0)(karma-junit-reporter@2.0.1)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.4.0)(karma@6.4.3)(typescript@4.9.5): + resolution: {integrity: sha512-5wpASLPgWU+ti7+/iHquym0mY1lFZkkNUlHPzCjSOBolzdSWO9yFO/S5k2agzULNbNrZInI9IErakyc6K3xvog==} + requiresBuild: true peerDependencies: karma: '>=4.0.0' karma-chrome-launcher: '>=2.0.0' - karma-firefox-launcher: '>=1.0.0' - karma-jasmine: '>=2.0.0' - karma-junit-reporter: '>=2.0.0' - karma-requirejs: '>=1.0.0' - karma-sourcemap-loader: '>=0.3.0' - - '@bazel/esbuild@5.8.1': - resolution: {integrity: sha512-8k4LL8P3ivCnFeBOcjiFxL8U+M5VtEGuOyIqm2hfEiP8xDWsZLS7YQ7KhshKJy7Elh2dlK9oGgMtl0D/x9kxxg==, tarball: https://registry.npmjs.org/@bazel/esbuild/-/esbuild-5.8.1.tgz} - - '@bazel/ibazel@0.25.0': - resolution: {integrity: sha512-dtosfsuZCSaqlUe5EyxNdaN7Gow0Y+ZJixdlciytcSieUcB/1lXPFTx6OihxhjgtTHkeFovlQ/QbvArRPnk+nQ==, tarball: https://registry.npmjs.org/@bazel/ibazel/-/ibazel-0.25.0.tgz} - hasBin: true - - '@bazel/labs@4.6.1': - resolution: {integrity: sha512-7CRtjP9W3ywX6AvTAzV5is0LrXt3zxUSW5SzUGa+LhdsrDc3+VDyW7MOJlwMai2xmBb4J1tqaZKo8KSlr2H2tg==, tarball: https://registry.npmjs.org/@bazel/labs/-/labs-4.6.1.tgz} - - '@bazel/typescript@5.8.1': - resolution: {integrity: sha512-NAJ8WQHZL1WE1YmRoCrq/1hhG15Mvy/viWh6TkvFnBeEhNUiQUsA5GYyhU1ztnBIYW03nATO3vwhAEfO7Q0U5g==, tarball: https://registry.npmjs.org/@bazel/typescript/-/typescript-5.8.1.tgz} - deprecated: No longer maintained, https://github.com/aspect-build/rules_ts is the recommended replacement - hasBin: true - peerDependencies: - typescript: '>=3.0.0' - - '@bazel/worker@5.8.1': - resolution: {integrity: sha512-GMyZSNW3F34f9GjbJqvs1aHyed5BNrNeiDzNJhC1fIizo/UeBM21oBBONIYLBDoBtq936U85VyPZ76JaP/83hw==, tarball: https://registry.npmjs.org/@bazel/worker/-/worker-5.8.1.tgz} - - '@colors/colors@1.5.0': - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==, tarball: https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz} - engines: {node: '>=0.1.90'} - - '@esbuild/aix-ppc64@0.21.2': - resolution: {integrity: sha512-/c7hocx0pm14bHQlqUVKmxwdT/e5/KkyoY1W8F9lk/8CkE037STDDz8PXUP/LE6faj2HqchvDs9GcShxFhI78Q==, tarball: https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.21.2': - resolution: {integrity: sha512-SGZKngoTWVUriO5bDjI4WDGsNx2VKZoXcds+ita/kVYB+8IkSCKDRDaK+5yu0b5S0eq6B3S7fpiEvpsa2ammlQ==, tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.21.2': - resolution: {integrity: sha512-G1ve3b4FeyJeyCjB4MX1CiWyTaIJwT9wAYE+8+IRA53YoN/reC/Bf2GDRXAzDTnh69Fpl+1uIKg76DiB3U6vwQ==, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.21.2': - resolution: {integrity: sha512-1wzzNoj2QtNkAYwIcWJ66UTRA80+RTQ/kuPMtEuP0X6dp5Ar23Dn566q3aV61h4EYrrgGlOgl/HdcqN/2S/2vg==, tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.21.2': - resolution: {integrity: sha512-ZyMkPWc5eTROcLOA10lEqdDSTc6ds6nuh3DeHgKip/XJrYjZDfnkCVSty8svWdy+SC1f77ULtVeIqymTzaB6/Q==, tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.2': - resolution: {integrity: sha512-K4ZdVq1zP9v51h/cKVna7im7G0zGTKKB6bP2yJiSmHjjOykbd8DdhrSi8V978sF69rkwrn8zCyL2t6I3ei6j9A==, tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.21.2': - resolution: {integrity: sha512-4kbOGdpA61CXqadD+Gb/Pw3YXamQGiz9mal/h93rFVSjr5cgMnmJd/gbfPRm+3BMifvnaOfS1gNWaIDxkE2A3A==, tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.2': - resolution: {integrity: sha512-ShS+R09nuHzDBfPeMUliKZX27Wrmr8UFp93aFf/S8p+++x5BZ+D344CLKXxmY6qzgTL3mILSImPCNJOzD6+RRg==, tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.21.2': - resolution: {integrity: sha512-Hdu8BL+AmO+eCDvvT6kz/fPQhvuHL8YK4ExKZfANWsNe1kFGOHw7VJvS/FKSLFqheXmB3rTF3xFQIgUWPYsGnA==, tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.21.2': - resolution: {integrity: sha512-nnGXjOAv+7cM3LYRx4tJsYdgy8dGDGkAzF06oIDGppWbUkUKN9SmgQA8H0KukpU0Pjrj9XmgbWqMVSX/U7eeTA==, tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.21.2': - resolution: {integrity: sha512-m73BOCW2V9lcj7RtEMi+gBfHC6n3+VHpwQXP5offtQMPLDkpVolYn1YGXxOZ9hp4h3UPRKuezL7WkBsw+3EB3Q==, tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.21.2': - resolution: {integrity: sha512-84eYHwwWHq3myIY/6ikALMcnwkf6Qo7NIq++xH0x+cJuUNpdwh8mlpUtRY+JiGUc60yu7ElWBbVHGWTABTclGw==, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.21.2': - resolution: {integrity: sha512-9siSZngT0/ZKG+AH+/agwKF29LdCxw4ODi/PiE0F52B2rtLozlDP92umf8G2GPoVV611LN4pZ+nSTckebOscUA==, tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.21.2': - resolution: {integrity: sha512-y0T4aV2CA+ic04ULya1A/8M2RDpDSK2ckgTj6jzHKFJvCq0jQg8afQQIn4EM0G8u2neyOiNHgSF9YKPfuqKOVw==, tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.2': - resolution: {integrity: sha512-x5ssCdXmZC86L2Li1qQPF/VaC4VP20u/Zm8jlAu9IiVOVi79YsSz6cpPDYZl1rfKSHYCJW9XBfFCo66S5gVPSA==, tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.21.2': - resolution: {integrity: sha512-NP7fTpGSFWdXyvp8iAFU04uFh9ARoplFVM/m+8lTRpaYG+2ytHPZWyscSsMM6cvObSIK2KoPHXiZD4l99WaxbQ==, tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.21.2': - resolution: {integrity: sha512-giZ/uOxWDKda44ZuyfKbykeXznfuVNkTgXOUOPJIjbayJV6FRpQ4zxUy9JMBPLaK9IJcdWtaoeQrYBMh3Rr4vQ==, tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.21.2': - resolution: {integrity: sha512-IeFMfGFSQfIj1d4XU+6lkbFzMR+mFELUUVYrZ+jvWzG4NGvs6o53ReEHLHpYkjRbdEjJy2W3lTekTxrFHW7YJg==, tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.21.2': - resolution: {integrity: sha512-48QhWD6WxcebNNaE4FCwgvQVUnAycuTd+BdvA/oZu+/MmbpU8pY2dMEYlYzj5uNHWIG5jvdDmFXu0naQeOWUoA==, tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.21.2': - resolution: {integrity: sha512-90r3nTBLgdIgD4FCVV9+cR6Hq2Dzs319icVsln+NTmTVwffWcCqXGml8rAoocHuJ85kZK36DCteii96ba/PX8g==, tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.21.2': - resolution: {integrity: sha512-sNndlsBT8OeE/MZDSGpRDJlWuhjuUz/dn80nH0EP4ZzDUYvMDVa7G87DVpweBrn4xdJYyXS/y4CQNrf7R2ODXg==, tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.21.2': - resolution: {integrity: sha512-Ti2QChGNFzWhUNNVuU4w21YkYTErsNh3h+CzvlEhzgRbwsJ7TrWQqRzW3bllLKKvTppuF3DJ3XP1GEg11AfrEQ==, tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.21.2': - resolution: {integrity: sha512-VEfTCZicoZnZ6sGkjFPGRFFJuL2fZn2bLhsekZl1CJslflp2cJS/VoKs1jMk+3pDfsGW6CfQVUckP707HwbXeQ==, tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.2.tgz} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@protobufjs/aspromise@1.1.2': - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==, tarball: https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz} - - '@protobufjs/base64@1.1.2': - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==, tarball: https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz} - - '@protobufjs/codegen@2.0.4': - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==, tarball: https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz} - - '@protobufjs/eventemitter@1.1.0': - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==, tarball: https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz} - - '@protobufjs/fetch@1.1.0': - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==, tarball: https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz} - - '@protobufjs/float@1.0.2': - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==, tarball: https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz} - - '@protobufjs/inquire@1.1.0': - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==, tarball: https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz} - - '@protobufjs/path@1.1.2': - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==, tarball: https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz} - - '@protobufjs/pool@1.1.0': - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==, tarball: https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz} - - '@protobufjs/utf8@1.1.0': - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==, tarball: https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz} - - '@socket.io/component-emitter@3.1.2': - resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==, tarball: https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz} - - '@teppeis/clutz@1.0.2': - resolution: {integrity: sha512-Ql8RZ7EJNahPqjXoES8spoVFoTewAtf+RUcEgd8JwJNj4K6dA+TNUJjLZEtW7FB0h1xbXMqRdttryCmEBGz/PQ==, tarball: https://registry.npmjs.org/@teppeis/clutz/-/clutz-1.0.2.tgz} - hasBin: true - - '@types/cookie@0.4.1': - resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==, tarball: https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz} - - '@types/cors@2.8.17': - resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==, tarball: https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz} - - '@types/long@4.0.2': - resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==, tarball: https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz} - - '@types/minimist@1.2.2': - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==, tarball: https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz} - - '@types/node@10.17.60': - resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==, tarball: https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz} - - '@types/node@20.12.11': - resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==, tarball: https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz} - - '@types/source-map-support@0.5.10': - resolution: {integrity: sha512-tgVP2H469x9zq34Z0m/fgPewGhg/MLClalNOiPIzQlXrSS2YrKu/xCdSCKnEDwkFha51VKEKB6A9wW26/ZNwzA==, tarball: https://registry.npmjs.org/@types/source-map-support/-/source-map-support-0.5.10.tgz} - - '@yarnpkg/lockfile@1.1.0': - resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==, tarball: https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, tarball: https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz} - engines: {node: '>= 0.6'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz} - engines: {node: '>=8'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz} - engines: {node: '>=8'} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, tarball: https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz} - engines: {node: '>= 8'} - - at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, tarball: https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz} - engines: {node: '>= 4.0.0'} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, tarball: https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz} - - base64id@2.0.0: - resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==, tarball: https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz} - engines: {node: ^4.5.0 || >= 5.9} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, tarball: https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz} - engines: {node: '>=8'} - - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==, tarball: https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, tarball: https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz} - - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, tarball: https://registry.npmjs.org/braces/-/braces-3.0.2.tgz} - engines: {node: '>=8'} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, tarball: https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, tarball: https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz} - engines: {node: '>= 0.8'} - - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==, tarball: https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz} - engines: {node: '>= 0.4'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, tarball: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz} - engines: {node: '>=10'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, tarball: https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz} - engines: {node: '>= 8.10.0'} - - ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==, tarball: https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz} - - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, tarball: https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, tarball: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, tarball: https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz} - - connect@3.7.0: - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==, tarball: https://registry.npmjs.org/connect/-/connect-3.7.0.tgz} - engines: {node: '>= 0.10.0'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==, tarball: https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz} - engines: {node: '>= 0.6'} - - cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==, tarball: https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz} - engines: {node: '>= 0.6'} - - cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, tarball: https://registry.npmjs.org/cors/-/cors-2.8.5.tgz} - engines: {node: '>= 0.10'} - - cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==, tarball: https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz} - engines: {node: '>=4.8'} - - custom-event@1.0.1: - resolution: {integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==, tarball: https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz} - - date-format@4.0.14: - resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==, tarball: https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz} - engines: {node: '>=4.0'} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, tarball: https://registry.npmjs.org/debug/-/debug-2.6.9.tgz} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, tarball: https://registry.npmjs.org/debug/-/debug-4.3.4.tgz} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, tarball: https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz} - engines: {node: '>= 0.4'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, tarball: https://registry.npmjs.org/depd/-/depd-2.0.0.tgz} - engines: {node: '>= 0.8'} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, tarball: https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - di@0.0.1: - resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==, tarball: https://registry.npmjs.org/di/-/di-0.0.1.tgz} - - dom-serialize@2.2.1: - resolution: {integrity: sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==, tarball: https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, tarball: https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, tarball: https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz} - - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, tarball: https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz} - engines: {node: '>= 0.8'} - - engine.io-parser@5.2.2: - resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==, tarball: https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz} - engines: {node: '>=10.0.0'} - - engine.io@6.5.4: - resolution: {integrity: sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==, tarball: https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz} - engines: {node: '>=10.2.0'} - - ent@2.2.0: - resolution: {integrity: sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==, tarball: https://registry.npmjs.org/ent/-/ent-2.2.0.tgz} - - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==, tarball: https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, tarball: https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz} - engines: {node: '>= 0.4'} - - esbuild@0.21.2: - resolution: {integrity: sha512-LmHPAa5h4tSxz+g/D8IHY6wCjtIiFx8I7/Q0Aq+NmvtoYvyMnJU0KQJcqB6QH30X9x/W4CemgUtPgQDZFca5SA==, tarball: https://registry.npmjs.org/esbuild/-/esbuild-0.21.2.tgz} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==, tarball: https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz} - engines: {node: '>=6'} - - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, tarball: https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, tarball: https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, tarball: https://registry.npmjs.org/extend/-/extend-3.0.2.tgz} - - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, tarball: https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz} - engines: {node: '>=8'} - - finalhandler@1.1.2: - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==, tarball: https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz} - engines: {node: '>= 0.8'} - - find-yarn-workspace-root@2.0.0: - resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==, tarball: https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz} - - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==, tarball: https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz} - - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==, tarball: https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz} - engines: {node: '>=6 <7 || >=8'} - - fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz} - engines: {node: '>=10'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, tarball: https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, tarball: https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, tarball: https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz} - engines: {node: 6.* || 8.* || >= 10.*} - - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==, tarball: https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz} - engines: {node: '>= 0.4'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz} - engines: {node: '>= 6'} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, tarball: https://registry.npmjs.org/glob/-/glob-7.2.3.tgz} - - google-closure-library-types@0.1.17: - resolution: {integrity: sha512-zFTLlQTt0nQiSK+fbx//rHYGkK628FOH5XSsIuGqA/yaMlZExS62GdmpphQxUFJ5spUNYTXi/e4FmnlX9NWZew==, tarball: https://registry.npmjs.org/google-closure-library-types/-/google-closure-library-types-0.1.17.tgz} - - google-closure-library@20190929.0.0: - resolution: {integrity: sha512-ChL2te1OLBqI7z2FYohjapHxoo2Jd7KsFTBKoNv9TiOlWR+7zcS4z1RxeUgczWAW9sji3q5OhbbtG/fJlbs1lw==, tarball: https://registry.npmjs.org/google-closure-library/-/google-closure-library-20190929.0.0.tgz} - - google-protobuf@3.21.2: - resolution: {integrity: sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==, tarball: https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz} - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, tarball: https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, tarball: https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, tarball: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, tarball: https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz} - - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==, tarball: https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, tarball: https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, tarball: https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz} - engines: {node: '>= 0.4'} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, tarball: https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz} - engines: {node: '>= 0.8'} - - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==, tarball: https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz} - engines: {node: '>=8.0.0'} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, tarball: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz} - engines: {node: '>=0.10.0'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, tarball: https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, tarball: https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, tarball: https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz} - engines: {node: '>=8'} - - is-ci@2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==, tarball: https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz} - hasBin: true - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, tarball: https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz} - engines: {node: '>=8'} - hasBin: true - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, tarball: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, tarball: https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} - engines: {node: '>=8'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, tarball: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, tarball: https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz} - engines: {node: '>=0.12.0'} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, tarball: https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz} - engines: {node: '>=8'} - - isbinaryfile@4.0.10: - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==, tarball: https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz} - engines: {node: '>= 8.0.0'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, tarball: https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz} - - jasmine-core@4.6.0: - resolution: {integrity: sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==, tarball: https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz} - - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, tarball: https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz} - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, tarball: https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz} - - karma-chrome-launcher@3.2.0: - resolution: {integrity: sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==, tarball: https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz} - - karma-firefox-launcher@2.1.3: - resolution: {integrity: sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw==, tarball: https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.3.tgz} - - karma-jasmine@5.1.0: - resolution: {integrity: sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==, tarball: https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz} - engines: {node: '>=12'} - peerDependencies: - karma: ^6.0.0 - - karma-junit-reporter@2.0.1: - resolution: {integrity: sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw==, tarball: https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-2.0.1.tgz} - engines: {node: '>= 8'} - peerDependencies: - karma: '>=0.9' - - karma-requirejs@1.1.0: - resolution: {integrity: sha512-MHTOYKdwwJBkvYid0TaYvBzOnFH3TDtzo6ie5E4o9SaUSXXsfMRLa/whUz6efVIgTxj1xnKYasNn/XwEgJeB/Q==, tarball: https://registry.npmjs.org/karma-requirejs/-/karma-requirejs-1.1.0.tgz} - peerDependencies: - karma: '>=0.9' - requirejs: ^2.1.0 - - karma-sourcemap-loader@0.4.0: - resolution: {integrity: sha512-xCRL3/pmhAYF3I6qOrcn0uhbQevitc2DERMPH82FMnG+4WReoGcGFZb1pURf2a5apyrOHRdvD+O6K7NljqKHyA==, tarball: https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.4.0.tgz} - - karma@6.4.3: - resolution: {integrity: sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==, tarball: https://registry.npmjs.org/karma/-/karma-6.4.3.tgz} - engines: {node: '>= 10'} - hasBin: true - - klaw-sync@6.0.0: - resolution: {integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==, tarball: https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, tarball: https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz} - - log4js@6.9.1: - resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==, tarball: https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz} - engines: {node: '>=8.0'} - - long@4.0.0: - resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==, tarball: https://registry.npmjs.org/long/-/long-4.0.0.tgz} - - long@5.2.3: - resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==, tarball: https://registry.npmjs.org/long/-/long-5.2.3.tgz} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, tarball: https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz} - engines: {node: '>= 0.6'} - - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, tarball: https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, tarball: https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, tarball: https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz} - engines: {node: '>= 0.6'} - - mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==, tarball: https://registry.npmjs.org/mime/-/mime-2.6.0.tgz} - engines: {node: '>=4.0.0'} - hasBin: true - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, tarball: https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, tarball: https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz} - - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, tarball: https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz} - hasBin: true - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, tarball: https://registry.npmjs.org/ms/-/ms-2.0.0.tgz} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, tarball: https://registry.npmjs.org/ms/-/ms-2.1.2.tgz} - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, tarball: https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz} - engines: {node: '>= 0.6'} - - nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==, tarball: https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, tarball: https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz} - engines: {node: '>=0.10.0'} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, tarball: https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz} - engines: {node: '>=0.10.0'} - - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, tarball: https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz} - - on-finished@2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==, tarball: https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz} - engines: {node: '>= 0.8'} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, tarball: https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, tarball: https://registry.npmjs.org/once/-/once-1.4.0.tgz} - - open@7.4.2: - resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==, tarball: https://registry.npmjs.org/open/-/open-7.4.2.tgz} - engines: {node: '>=8'} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, tarball: https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz} - engines: {node: '>=0.10.0'} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, tarball: https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz} - engines: {node: '>= 0.8'} - - patch-package@6.5.1: - resolution: {integrity: sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==, tarball: https://registry.npmjs.org/patch-package/-/patch-package-6.5.1.tgz} - engines: {node: '>=10', npm: '>5'} - hasBin: true - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, tarball: https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz} - engines: {node: '>=0.10.0'} - - path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==, tarball: https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz} - engines: {node: '>=4'} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, tarball: https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz} - engines: {node: '>=8.6'} - - protobufjs@6.8.8: - resolution: {integrity: sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==, tarball: https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz} - hasBin: true - - protobufjs@7.3.0: - resolution: {integrity: sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==, tarball: https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.0.tgz} - engines: {node: '>=12.0.0'} - - qjobs@1.2.0: - resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==, tarball: https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz} - engines: {node: '>=0.9'} - - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, tarball: https://registry.npmjs.org/qs/-/qs-6.11.0.tgz} - engines: {node: '>=0.6'} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, tarball: https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz} - engines: {node: '>= 0.6'} - - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, tarball: https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz} - engines: {node: '>= 0.8'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, tarball: https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz} - engines: {node: '>=8.10.0'} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, tarball: https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz} - engines: {node: '>=0.10.0'} - - requirejs@2.3.6: - resolution: {integrity: sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==, tarball: https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz} - engines: {node: '>=0.4.0'} - hasBin: true - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, tarball: https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz} - - rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==, tarball: https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz} - - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==, tarball: https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz} - hasBin: true - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, tarball: https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz} - hasBin: true - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, tarball: https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz} - - semver@5.6.0: - resolution: {integrity: sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==, tarball: https://registry.npmjs.org/semver/-/semver-5.6.0.tgz} - hasBin: true - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, tarball: https://registry.npmjs.org/semver/-/semver-5.7.2.tgz} - hasBin: true - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, tarball: https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz} - engines: {node: '>= 0.4'} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, tarball: https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz} - - shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==, tarball: https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz} - engines: {node: '>=0.10.0'} - - shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==, tarball: https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz} - engines: {node: '>=0.10.0'} - - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==, tarball: https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz} - engines: {node: '>= 0.4'} - - slash@2.0.0: - resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==, tarball: https://registry.npmjs.org/slash/-/slash-2.0.0.tgz} - engines: {node: '>=6'} - - socket.io-adapter@2.5.4: - resolution: {integrity: sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==, tarball: https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz} - - socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==, tarball: https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz} - engines: {node: '>=10.0.0'} - - socket.io@4.7.5: - resolution: {integrity: sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==, tarball: https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz} - engines: {node: '>=10.2.0'} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, tarball: https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz} - - source-map-support@0.5.9: - resolution: {integrity: sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==, tarball: https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz} - engines: {node: '>=0.10.0'} - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==, tarball: https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz} - engines: {node: '>= 0.6'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, tarball: https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz} - engines: {node: '>= 0.8'} - - streamroller@3.1.5: - resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==, tarball: https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz} - engines: {node: '>=8.0'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, tarball: https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz} - engines: {node: '>=8'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, tarball: https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz} - engines: {node: '>=8'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, tarball: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz} - engines: {node: '>=8'} - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, tarball: https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz} - engines: {node: '>=0.6.0'} - - tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==, tarball: https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz} - engines: {node: '>=14.14'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, tarball: https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz} - engines: {node: '>=8.0'} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, tarball: https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz} - engines: {node: '>=0.6'} - - tsickle@0.46.3: - resolution: {integrity: sha512-9PDXxOrtn2AdpvDin6FLGveXVGg8ec3ga8fh8mPR5lz9KtitW6riVgxgagicdfF1rgiBxDeH+5hVowPXhmZbYQ==, tarball: https://registry.npmjs.org/tsickle/-/tsickle-0.46.3.tgz} - peerDependencies: - typescript: ~4.7.2 - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, tarball: https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz} - - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, tarball: https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz} - - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, tarball: https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, tarball: https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz} - engines: {node: '>= 0.6'} - - typescript@3.9.10: - resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==, tarball: https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz} - engines: {node: '>=4.2.0'} - hasBin: true - - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==, tarball: https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz} - engines: {node: '>=14.17'} - hasBin: true - - ua-parser-js@0.7.37: - resolution: {integrity: sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==, tarball: https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, tarball: https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz} - - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, tarball: https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz} - engines: {node: '>= 4.0.0'} - - universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, tarball: https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz} - engines: {node: '>= 10.0.0'} - - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, tarball: https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz} - engines: {node: '>= 0.8'} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, tarball: https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz} - engines: {node: '>= 0.4.0'} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, tarball: https://registry.npmjs.org/vary/-/vary-1.1.2.tgz} - engines: {node: '>= 0.8'} - - void-elements@2.0.1: - resolution: {integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==, tarball: https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz} - engines: {node: '>=0.10.0'} - - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, tarball: https://registry.npmjs.org/which/-/which-1.3.1.tgz} - hasBin: true - - which@3.0.1: - resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==, tarball: https://registry.npmjs.org/which/-/which-3.0.1.tgz} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, tarball: https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz} - engines: {node: '>=10'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, tarball: https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz} - - ws@8.11.0: - resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==, tarball: https://registry.npmjs.org/ws/-/ws-8.11.0.tgz} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xmlbuilder@12.0.0: - resolution: {integrity: sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==, tarball: https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz} - engines: {node: '>=6.0'} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, tarball: https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz} - engines: {node: '>=10'} - - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, tarball: https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz} - engines: {node: '>= 6'} - - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, tarball: https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz} - engines: {node: '>=10'} - - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, tarball: https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz} - engines: {node: '>=10'} - -snapshots: - - '@bazel/buildifier@7.1.1': {} - - '@bazel/buildozer@7.1.1': {} - - '@bazel/concatjs@5.8.1(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@5.1.0(karma@6.4.3))(karma-junit-reporter@2.0.1(karma@6.4.3))(karma-requirejs@1.1.0(karma@6.4.3)(requirejs@2.3.6))(karma-sourcemap-loader@0.4.0)(karma@6.4.3)(typescript@5.4.5)': + karma-firefox-launcher: '>=1.0.0' + karma-jasmine: '>=2.0.0' + karma-junit-reporter: '>=2.0.0' + karma-requirejs: '>=1.0.0' + karma-sourcemap-loader: '>=0.3.0' dependencies: karma: 6.4.3 karma-chrome-launcher: 3.2.0 @@ -1085,173 +114,399 @@ snapshots: karma-sourcemap-loader: 0.4.0 protobufjs: 6.8.8 source-map-support: 0.5.9 - tsutils: 3.21.0(typescript@5.4.5) + tsutils: 3.21.0(typescript@4.9.5) transitivePeerDependencies: - typescript + dev: true - '@bazel/esbuild@5.8.1': {} + /@bazel/esbuild@4.6.2: + resolution: {integrity: sha512-VqmeIlEDq7tVNpIk88zS3DZSAV1F1VN92IBPekKuQqIU6PTt3+iID/v4lkK80SwFBthF4pi/PG0PPaulIe/qGA==} + requiresBuild: true + dev: true - '@bazel/ibazel@0.25.0': {} + /@bazel/ibazel@0.16.2: + resolution: {integrity: sha512-KgqAWMH0emL6f3xH6nqyTryoBMqlJ627LBIe9PT1PRRQPz2FtHib3FIHJPukp1slzF3hJYZvdiVwgPnHbaSOOA==} + hasBin: true + dev: true - '@bazel/labs@4.6.1': {} + /@bazel/labs@4.6.1: + resolution: {integrity: sha512-7CRtjP9W3ywX6AvTAzV5is0LrXt3zxUSW5SzUGa+LhdsrDc3+VDyW7MOJlwMai2xmBb4J1tqaZKo8KSlr2H2tg==} + dev: true - '@bazel/typescript@5.8.1(typescript@5.4.5)': + /@bazel/typescript@4.6.2(typescript@4.9.5): + resolution: {integrity: sha512-AUF7kq82bP6DX9Brihr/eQqvNccxVfSXosFxt80h94og5cmMyoc/euXha6rxlOBP3yWXmSo+/qjzO7o8PWJduQ==} + deprecated: No longer maintained, https://github.com/aspect-build/rules_ts is the recommended replacement + hasBin: true + requiresBuild: true + peerDependencies: + typescript: '>=3.0.0 <4.4.0' dependencies: - '@bazel/worker': 5.8.1 + '@bazel/worker': 4.6.2 + protobufjs: 6.8.8 semver: 5.6.0 source-map-support: 0.5.9 - tsutils: 3.21.0(typescript@5.4.5) - typescript: 5.4.5 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + dev: true - '@bazel/worker@5.8.1': + /@bazel/worker@4.6.2: + resolution: {integrity: sha512-DLpN6iQAH6uiUraAs4CESyqs60u55fcKmYgOOVObGuLSQQuX49Lw7XRIN90NibRPwpbBDQichWE3zfra0yKTTw==} dependencies: google-protobuf: 3.21.2 + dev: true - '@colors/colors@1.5.0': {} + /@colors/colors@1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + dev: true - '@esbuild/aix-ppc64@0.21.2': + /@esbuild/aix-ppc64@0.21.2: + resolution: {integrity: sha512-/c7hocx0pm14bHQlqUVKmxwdT/e5/KkyoY1W8F9lk/8CkE037STDDz8PXUP/LE6faj2HqchvDs9GcShxFhI78Q==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true optional: true - '@esbuild/android-arm64@0.21.2': + /@esbuild/android-arm64@0.21.2: + resolution: {integrity: sha512-SGZKngoTWVUriO5bDjI4WDGsNx2VKZoXcds+ita/kVYB+8IkSCKDRDaK+5yu0b5S0eq6B3S7fpiEvpsa2ammlQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-arm@0.21.2': + /@esbuild/android-arm@0.21.2: + resolution: {integrity: sha512-G1ve3b4FeyJeyCjB4MX1CiWyTaIJwT9wAYE+8+IRA53YoN/reC/Bf2GDRXAzDTnh69Fpl+1uIKg76DiB3U6vwQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-x64@0.21.2': + /@esbuild/android-x64@0.21.2: + resolution: {integrity: sha512-1wzzNoj2QtNkAYwIcWJ66UTRA80+RTQ/kuPMtEuP0X6dp5Ar23Dn566q3aV61h4EYrrgGlOgl/HdcqN/2S/2vg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/darwin-arm64@0.21.2': + /@esbuild/darwin-arm64@0.21.2: + resolution: {integrity: sha512-ZyMkPWc5eTROcLOA10lEqdDSTc6ds6nuh3DeHgKip/XJrYjZDfnkCVSty8svWdy+SC1f77ULtVeIqymTzaB6/Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@esbuild/darwin-x64@0.21.2': + /@esbuild/darwin-x64@0.21.2: + resolution: {integrity: sha512-K4ZdVq1zP9v51h/cKVna7im7G0zGTKKB6bP2yJiSmHjjOykbd8DdhrSi8V978sF69rkwrn8zCyL2t6I3ei6j9A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@esbuild/freebsd-arm64@0.21.2': + /@esbuild/freebsd-arm64@0.21.2: + resolution: {integrity: sha512-4kbOGdpA61CXqadD+Gb/Pw3YXamQGiz9mal/h93rFVSjr5cgMnmJd/gbfPRm+3BMifvnaOfS1gNWaIDxkE2A3A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - '@esbuild/freebsd-x64@0.21.2': + /@esbuild/freebsd-x64@0.21.2: + resolution: {integrity: sha512-ShS+R09nuHzDBfPeMUliKZX27Wrmr8UFp93aFf/S8p+++x5BZ+D344CLKXxmY6qzgTL3mILSImPCNJOzD6+RRg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-arm64@0.21.2': + /@esbuild/linux-arm64@0.21.2: + resolution: {integrity: sha512-Hdu8BL+AmO+eCDvvT6kz/fPQhvuHL8YK4ExKZfANWsNe1kFGOHw7VJvS/FKSLFqheXmB3rTF3xFQIgUWPYsGnA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-arm@0.21.2': + /@esbuild/linux-arm@0.21.2: + resolution: {integrity: sha512-nnGXjOAv+7cM3LYRx4tJsYdgy8dGDGkAzF06oIDGppWbUkUKN9SmgQA8H0KukpU0Pjrj9XmgbWqMVSX/U7eeTA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-ia32@0.21.2': + /@esbuild/linux-ia32@0.21.2: + resolution: {integrity: sha512-m73BOCW2V9lcj7RtEMi+gBfHC6n3+VHpwQXP5offtQMPLDkpVolYn1YGXxOZ9hp4h3UPRKuezL7WkBsw+3EB3Q==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-loong64@0.21.2': + /@esbuild/linux-loong64@0.21.2: + resolution: {integrity: sha512-84eYHwwWHq3myIY/6ikALMcnwkf6Qo7NIq++xH0x+cJuUNpdwh8mlpUtRY+JiGUc60yu7ElWBbVHGWTABTclGw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-mips64el@0.21.2': + /@esbuild/linux-mips64el@0.21.2: + resolution: {integrity: sha512-9siSZngT0/ZKG+AH+/agwKF29LdCxw4ODi/PiE0F52B2rtLozlDP92umf8G2GPoVV611LN4pZ+nSTckebOscUA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-ppc64@0.21.2': + /@esbuild/linux-ppc64@0.21.2: + resolution: {integrity: sha512-y0T4aV2CA+ic04ULya1A/8M2RDpDSK2ckgTj6jzHKFJvCq0jQg8afQQIn4EM0G8u2neyOiNHgSF9YKPfuqKOVw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-riscv64@0.21.2': + /@esbuild/linux-riscv64@0.21.2: + resolution: {integrity: sha512-x5ssCdXmZC86L2Li1qQPF/VaC4VP20u/Zm8jlAu9IiVOVi79YsSz6cpPDYZl1rfKSHYCJW9XBfFCo66S5gVPSA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-s390x@0.21.2': + /@esbuild/linux-s390x@0.21.2: + resolution: {integrity: sha512-NP7fTpGSFWdXyvp8iAFU04uFh9ARoplFVM/m+8lTRpaYG+2ytHPZWyscSsMM6cvObSIK2KoPHXiZD4l99WaxbQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-x64@0.21.2': + /@esbuild/linux-x64@0.21.2: + resolution: {integrity: sha512-giZ/uOxWDKda44ZuyfKbykeXznfuVNkTgXOUOPJIjbayJV6FRpQ4zxUy9JMBPLaK9IJcdWtaoeQrYBMh3Rr4vQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/netbsd-x64@0.21.2': + /@esbuild/netbsd-x64@0.21.2: + resolution: {integrity: sha512-IeFMfGFSQfIj1d4XU+6lkbFzMR+mFELUUVYrZ+jvWzG4NGvs6o53ReEHLHpYkjRbdEjJy2W3lTekTxrFHW7YJg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true optional: true - '@esbuild/openbsd-x64@0.21.2': + /@esbuild/openbsd-x64@0.21.2: + resolution: {integrity: sha512-48QhWD6WxcebNNaE4FCwgvQVUnAycuTd+BdvA/oZu+/MmbpU8pY2dMEYlYzj5uNHWIG5jvdDmFXu0naQeOWUoA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true optional: true - '@esbuild/sunos-x64@0.21.2': + /@esbuild/sunos-x64@0.21.2: + resolution: {integrity: sha512-90r3nTBLgdIgD4FCVV9+cR6Hq2Dzs319icVsln+NTmTVwffWcCqXGml8rAoocHuJ85kZK36DCteii96ba/PX8g==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-arm64@0.21.2': + /@esbuild/win32-arm64@0.21.2: + resolution: {integrity: sha512-sNndlsBT8OeE/MZDSGpRDJlWuhjuUz/dn80nH0EP4ZzDUYvMDVa7G87DVpweBrn4xdJYyXS/y4CQNrf7R2ODXg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-ia32@0.21.2': + /@esbuild/win32-ia32@0.21.2: + resolution: {integrity: sha512-Ti2QChGNFzWhUNNVuU4w21YkYTErsNh3h+CzvlEhzgRbwsJ7TrWQqRzW3bllLKKvTppuF3DJ3XP1GEg11AfrEQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-x64@0.21.2': + /@esbuild/win32-x64@0.21.2: + resolution: {integrity: sha512-VEfTCZicoZnZ6sGkjFPGRFFJuL2fZn2bLhsekZl1CJslflp2cJS/VoKs1jMk+3pDfsGW6CfQVUckP707HwbXeQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@protobufjs/aspromise@1.1.2': {} + /@protobufjs/aspromise@1.1.2: + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + dev: true - '@protobufjs/base64@1.1.2': {} + /@protobufjs/base64@1.1.2: + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + dev: true - '@protobufjs/codegen@2.0.4': {} + /@protobufjs/codegen@2.0.4: + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + dev: true - '@protobufjs/eventemitter@1.1.0': {} + /@protobufjs/eventemitter@1.1.0: + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + dev: true - '@protobufjs/fetch@1.1.0': + /@protobufjs/fetch@1.1.0: + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/inquire': 1.1.0 + dev: true - '@protobufjs/float@1.0.2': {} + /@protobufjs/float@1.0.2: + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + dev: true - '@protobufjs/inquire@1.1.0': {} + /@protobufjs/inquire@1.1.0: + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + dev: true - '@protobufjs/path@1.1.2': {} + /@protobufjs/path@1.1.2: + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + dev: true - '@protobufjs/pool@1.1.0': {} + /@protobufjs/pool@1.1.0: + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + dev: true - '@protobufjs/utf8@1.1.0': {} + /@protobufjs/utf8@1.1.0: + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + dev: true - '@socket.io/component-emitter@3.1.2': {} + /@socket.io/component-emitter@3.1.2: + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + dev: true - '@teppeis/clutz@1.0.2': {} + /@teppeis/clutz@1.0.2: + resolution: {integrity: sha512-Ql8RZ7EJNahPqjXoES8spoVFoTewAtf+RUcEgd8JwJNj4K6dA+TNUJjLZEtW7FB0h1xbXMqRdttryCmEBGz/PQ==} + hasBin: true + dev: true - '@types/cookie@0.4.1': {} + /@types/cookie@0.4.1: + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + dev: true - '@types/cors@2.8.17': + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 20.12.11 + '@types/node': 20.14.2 + dev: true - '@types/long@4.0.2': {} + /@types/long@4.0.2: + resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} + dev: true - '@types/minimist@1.2.2': {} + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + dev: true - '@types/node@10.17.60': {} + /@types/node@10.17.60: + resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} + dev: true - '@types/node@20.12.11': + /@types/node@20.14.2: + resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} dependencies: undici-types: 5.26.5 + dev: true - '@types/source-map-support@0.5.10': + /@types/source-map-support@0.5.10: + resolution: {integrity: sha512-tgVP2H469x9zq34Z0m/fgPewGhg/MLClalNOiPIzQlXrSS2YrKu/xCdSCKnEDwkFha51VKEKB6A9wW26/ZNwzA==} dependencies: source-map: 0.6.1 + dev: true - '@yarnpkg/lockfile@1.1.0': {} + /@yarnpkg/lockfile@1.1.0: + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + dev: true - accepts@1.3.8: + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} dependencies: mime-types: 2.1.35 negotiator: 0.6.3 + dev: true - ansi-regex@5.0.1: {} + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true - ansi-styles@4.3.0: + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 + dev: true - anymatch@3.1.3: + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 + dev: true - at-least-node@1.0.0: {} + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true - balanced-match@1.0.2: {} + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true - base64id@2.0.0: {} + /base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + dev: true - binary-extensions@2.3.0: {} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + dev: true - body-parser@1.20.2: + /body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -1267,37 +522,56 @@ snapshots: unpipe: 1.0.0 transitivePeerDependencies: - supports-color + dev: true - brace-expansion@1.1.11: + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + dev: true - braces@3.0.2: + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} dependencies: - fill-range: 7.0.1 + fill-range: 7.1.1 + dev: true - buffer-from@1.1.2: {} + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true - bytes@3.1.2: {} + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: true - call-bind@1.0.7: + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 get-intrinsic: 1.2.4 set-function-length: 1.2.2 + dev: true - chalk@4.1.2: + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: true - chokidar@3.6.0: + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -1305,24 +579,38 @@ snapshots: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 + dev: true - ci-info@2.0.0: {} + /ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: true - cliui@7.0.4: + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true - color-convert@2.0.1: + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 + dev: true - color-name@1.1.4: {} + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true - concat-map@0.0.1: {} + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true - connect@3.7.0: + /connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} dependencies: debug: 2.6.9 finalhandler: 1.1.2 @@ -1330,89 +618,163 @@ snapshots: utils-merge: 1.0.1 transitivePeerDependencies: - supports-color + dev: true - content-type@1.0.5: {} + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: true - cookie@0.4.2: {} + /cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + dev: true - cors@2.8.5: + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} dependencies: object-assign: 4.1.1 vary: 1.1.2 + dev: true - cross-spawn@6.0.5: + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} dependencies: nice-try: 1.0.5 path-key: 2.0.1 semver: 5.7.2 shebang-command: 1.2.0 which: 1.3.1 + dev: true - custom-event@1.0.1: {} + /custom-event@1.0.1: + resolution: {integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==} + dev: true - date-format@4.0.14: {} + /date-format@4.0.14: + resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} + engines: {node: '>=4.0'} + dev: true - debug@2.6.9: + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 + dev: true - debug@4.3.4: + /debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.2 + dev: true - define-data-property@1.1.4: + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 + dev: true - depd@2.0.0: {} + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: true - destroy@1.2.0: {} + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: true - di@0.0.1: {} + /di@0.0.1: + resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==} + dev: true - dom-serialize@2.2.1: + /dom-serialize@2.2.1: + resolution: {integrity: sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==} dependencies: custom-event: 1.0.1 - ent: 2.2.0 + ent: 2.2.1 extend: 3.0.2 void-elements: 2.0.1 + dev: true - ee-first@1.1.1: {} + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true - emoji-regex@8.0.0: {} + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true - encodeurl@1.0.2: {} + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true - engine.io-parser@5.2.2: {} + /engine.io-parser@5.2.2: + resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==} + engines: {node: '>=10.0.0'} + dev: true - engine.io@6.5.4: + /engine.io@6.5.5: + resolution: {integrity: sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==} + engines: {node: '>=10.2.0'} dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 20.12.11 + '@types/node': 20.14.2 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 cors: 2.8.5 - debug: 4.3.4 + debug: 4.3.5 engine.io-parser: 5.2.2 - ws: 8.11.0 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate + dev: true - ent@2.2.0: {} + /ent@2.2.1: + resolution: {integrity: sha512-QHuXVeZx9d+tIQAz/XztU0ZwZf2Agg9CcXcgE1rurqvdBeDBrpSwjl8/6XUqMg7tw2Y7uAdKb2sRv+bSEFqQ5A==} + engines: {node: '>= 0.4'} + dependencies: + punycode: 1.4.1 + dev: true - es-define-property@1.0.0: + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 + dev: true - es-errors@1.3.0: {} + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true - esbuild@0.21.2: + /esbuild@0.21.2: + resolution: {integrity: sha512-LmHPAa5h4tSxz+g/D8IHY6wCjtIiFx8I7/Q0Aq+NmvtoYvyMnJU0KQJcqB6QH30X9x/W4CemgUtPgQDZFca5SA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true optionalDependencies: '@esbuild/aix-ppc64': 0.21.2 '@esbuild/android-arm': 0.21.2 @@ -1437,20 +799,35 @@ snapshots: '@esbuild/win32-arm64': 0.21.2 '@esbuild/win32-ia32': 0.21.2 '@esbuild/win32-x64': 0.21.2 + dev: true - escalade@3.1.2: {} + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + dev: true - escape-html@1.0.3: {} + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true - eventemitter3@4.0.7: {} + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true - extend@3.0.2: {} + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true - fill-range@7.0.1: + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 + dev: true - finalhandler@1.1.2: + /finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -1461,50 +838,89 @@ snapshots: unpipe: 1.0.0 transitivePeerDependencies: - supports-color + dev: true - find-yarn-workspace-root@2.0.0: + /find-yarn-workspace-root@2.0.0: + resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} dependencies: - micromatch: 4.0.5 + micromatch: 4.0.7 + dev: true - flatted@3.3.1: {} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + dev: true - follow-redirects@1.15.6: {} + /follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true - fs-extra@8.1.0: + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 + dev: true - fs-extra@9.1.0: + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 + dev: true - fs.realpath@1.0.0: {} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true - fsevents@2.3.3: + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true optional: true - function-bind@1.1.2: {} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true - get-caller-file@2.0.5: {} + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true - get-intrinsic@1.2.4: + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 function-bind: 1.1.2 has-proto: 1.0.3 has-symbols: 1.0.3 hasown: 2.0.2 + dev: true - glob-parent@5.1.2: + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 + dev: true - glob@7.2.3: + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -1512,139 +928,239 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true - google-closure-library-types@0.1.17: + /google-closure-library-types@0.1.17: + resolution: {integrity: sha512-zFTLlQTt0nQiSK+fbx//rHYGkK628FOH5XSsIuGqA/yaMlZExS62GdmpphQxUFJ5spUNYTXi/e4FmnlX9NWZew==} + requiresBuild: true dependencies: '@teppeis/clutz': 1.0.2 google-closure-library: 20190929.0.0 patch-package: 6.5.1 typescript: 3.9.10 + dev: true - google-closure-library@20190929.0.0: {} + /google-closure-library@20190929.0.0: + resolution: {integrity: sha512-ChL2te1OLBqI7z2FYohjapHxoo2Jd7KsFTBKoNv9TiOlWR+7zcS4z1RxeUgczWAW9sji3q5OhbbtG/fJlbs1lw==} + dev: true - google-protobuf@3.21.2: {} + /google-protobuf@3.21.2: + resolution: {integrity: sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==} + dev: true - gopd@1.0.1: + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.4 + dev: true - graceful-fs@4.2.11: {} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true - has-flag@4.0.0: {} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true - has-property-descriptors@1.0.2: + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 + dev: true - has-proto@1.0.3: {} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true - has-symbols@1.0.3: {} + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true - hasown@2.0.2: + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 + dev: true - http-errors@2.0.0: + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} dependencies: depd: 2.0.0 inherits: 2.0.4 setprototypeof: 1.2.0 statuses: 2.0.1 toidentifier: 1.0.1 + dev: true - http-proxy@1.18.1: + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 follow-redirects: 1.15.6 requires-port: 1.0.0 transitivePeerDependencies: - debug + dev: true - iconv-lite@0.4.24: + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: true - inflight@1.0.6: + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: true - inherits@2.0.4: {} + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true - is-binary-path@2.1.0: + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: binary-extensions: 2.3.0 + dev: true - is-ci@2.0.0: + /is-ci@2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true dependencies: ci-info: 2.0.0 + dev: true - is-docker@2.2.1: {} + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true - is-extglob@2.1.1: {} + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true - is-fullwidth-code-point@3.0.0: {} + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true - is-glob@4.0.3: + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 + dev: true - is-number@7.0.0: {} + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true - is-wsl@2.2.0: + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 + dev: true - isbinaryfile@4.0.10: {} + /isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + dev: true - isexe@2.0.0: {} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true - jasmine-core@4.6.0: {} + /jasmine-core@4.6.1: + resolution: {integrity: sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==} + dev: true - jsonfile@4.0.0: + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.11 + dev: true - jsonfile@6.1.0: + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 + dev: true - karma-chrome-launcher@3.2.0: + /karma-chrome-launcher@3.2.0: + resolution: {integrity: sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==} dependencies: which: 1.3.1 + dev: true - karma-firefox-launcher@2.1.3: + /karma-firefox-launcher@2.1.3: + resolution: {integrity: sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw==} dependencies: is-wsl: 2.2.0 which: 3.0.1 + dev: true - karma-jasmine@5.1.0(karma@6.4.3): + /karma-jasmine@5.1.0(karma@6.4.3): + resolution: {integrity: sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==} + engines: {node: '>=12'} + peerDependencies: + karma: ^6.0.0 dependencies: - jasmine-core: 4.6.0 + jasmine-core: 4.6.1 karma: 6.4.3 + dev: true - karma-junit-reporter@2.0.1(karma@6.4.3): + /karma-junit-reporter@2.0.1(karma@6.4.3): + resolution: {integrity: sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw==} + engines: {node: '>= 8'} + peerDependencies: + karma: '>=0.9' dependencies: karma: 6.4.3 path-is-absolute: 1.0.1 xmlbuilder: 12.0.0 + dev: true - karma-requirejs@1.1.0(karma@6.4.3)(requirejs@2.3.6): + /karma-requirejs@1.1.0(karma@6.4.3)(requirejs@2.3.6): + resolution: {integrity: sha512-MHTOYKdwwJBkvYid0TaYvBzOnFH3TDtzo6ie5E4o9SaUSXXsfMRLa/whUz6efVIgTxj1xnKYasNn/XwEgJeB/Q==} + peerDependencies: + karma: '>=0.9' + requirejs: ^2.1.0 dependencies: karma: 6.4.3 requirejs: 2.3.6 + dev: true - karma-sourcemap-loader@0.4.0: + /karma-sourcemap-loader@0.4.0: + resolution: {integrity: sha512-xCRL3/pmhAYF3I6qOrcn0uhbQevitc2DERMPH82FMnG+4WReoGcGFZb1pURf2a5apyrOHRdvD+O6K7NljqKHyA==} dependencies: graceful-fs: 4.2.11 + dev: true - karma@6.4.3: + /karma@6.4.3: + resolution: {integrity: sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==} + engines: {node: '>= 10'} + hasBin: true dependencies: '@colors/colors': 1.5.0 body-parser: 1.20.2 - braces: 3.0.2 + braces: 3.0.3 chokidar: 3.6.0 connect: 3.7.0 di: 0.0.1 @@ -1664,95 +1180,168 @@ snapshots: socket.io: 4.7.5 source-map: 0.6.1 tmp: 0.2.3 - ua-parser-js: 0.7.37 + ua-parser-js: 0.7.38 yargs: 16.2.0 transitivePeerDependencies: - bufferutil - debug - supports-color - utf-8-validate + dev: true - klaw-sync@6.0.0: + /klaw-sync@6.0.0: + resolution: {integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==} dependencies: graceful-fs: 4.2.11 + dev: true - lodash@4.17.21: {} + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true - log4js@6.9.1: + /log4js@6.9.1: + resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} + engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.4 + debug: 4.3.5 flatted: 3.3.1 - rfdc: 1.3.1 + rfdc: 1.4.1 streamroller: 3.1.5 transitivePeerDependencies: - supports-color + dev: true - long@4.0.0: {} + /long@4.0.0: + resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} + dev: true - long@5.2.3: {} + /long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + dev: true - media-typer@0.3.0: {} + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true - micromatch@4.0.5: + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 + dev: true - mime-db@1.52.0: {} + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true - mime-types@2.1.35: + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 + dev: true - mime@2.6.0: {} + /mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + dev: true - minimatch@3.1.2: + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 + dev: true - minimist@1.2.8: {} + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true - mkdirp@0.5.6: + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true dependencies: minimist: 1.2.8 + dev: true - ms@2.0.0: {} + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true - ms@2.1.2: {} + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true - negotiator@0.6.3: {} + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true - nice-try@1.0.5: {} + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: true - normalize-path@3.0.0: {} + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true - object-assign@4.1.1: {} + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true - object-inspect@1.13.1: {} + /object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + dev: true - on-finished@2.3.0: + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 + dev: true - on-finished@2.4.1: + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 + dev: true - once@1.4.0: + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 + dev: true - open@7.4.2: + /open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 is-wsl: 2.2.0 + dev: true - os-tmpdir@1.0.2: {} + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true - parseurl@1.3.3: {} + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true - patch-package@6.5.1: + /patch-package@6.5.1: + resolution: {integrity: sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==} + engines: {node: '>=10', npm: '>5'} + hasBin: true dependencies: '@yarnpkg/lockfile': 1.1.0 chalk: 4.1.2 @@ -1768,14 +1357,27 @@ snapshots: slash: 2.0.0 tmp: 0.0.33 yaml: 1.10.2 + dev: true - path-is-absolute@1.0.1: {} + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true - path-key@2.0.1: {} + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: true - picomatch@2.3.1: {} + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true - protobufjs@6.8.8: + /protobufjs@6.8.8: + resolution: {integrity: sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==} + hasBin: true + requiresBuild: true dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -1790,8 +1392,12 @@ snapshots: '@types/long': 4.0.2 '@types/node': 10.17.60 long: 4.0.0 + dev: true - protobufjs@7.3.0: + /protobufjs@7.3.0: + resolution: {integrity: sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==} + engines: {node: '>=12.0.0'} + requiresBuild: true dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -1803,51 +1409,100 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.12.11 + '@types/node': 20.14.2 long: 5.2.3 + dev: true - qjobs@1.2.0: {} + /punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + dev: true - qs@6.11.0: + /qjobs@1.2.0: + resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==} + engines: {node: '>=0.9'} + dev: true + + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 + dev: true - range-parser@1.2.1: {} + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + dev: true - raw-body@2.5.2: + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 + dev: true - readdirp@3.6.0: + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 + dev: true - require-directory@2.1.1: {} + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true - requirejs@2.3.6: {} + /requirejs@2.3.6: + resolution: {integrity: sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true - requires-port@1.0.0: {} + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true - rfdc@1.3.1: {} + /rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + dev: true - rimraf@2.7.1: + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true dependencies: glob: 7.2.3 + dev: true - rimraf@3.0.2: + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true dependencies: glob: 7.2.3 + dev: true - safer-buffer@2.1.2: {} + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true - semver@5.6.0: {} + /semver@5.6.0: + resolution: {integrity: sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==} + hasBin: true + dev: true - semver@5.7.2: {} + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: true - set-function-length@1.2.2: + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -1855,170 +1510,313 @@ snapshots: get-intrinsic: 1.2.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 + dev: true - setprototypeof@1.2.0: {} + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: true - shebang-command@1.2.0: + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 + dev: true - shebang-regex@1.0.0: {} + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: true - side-channel@1.0.6: + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.2 + dev: true - slash@2.0.0: {} + /slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + dev: true - socket.io-adapter@2.5.4: + /socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} dependencies: - debug: 4.3.4 - ws: 8.11.0 + debug: 4.3.5 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate + dev: true - socket.io-parser@4.2.4: + /socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color + dev: true - socket.io@4.7.5: + /socket.io@4.7.5: + resolution: {integrity: sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==} + engines: {node: '>=10.2.0'} dependencies: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.5 - debug: 4.3.4 - engine.io: 6.5.4 - socket.io-adapter: 2.5.4 + debug: 4.3.5 + engine.io: 6.5.5 + socket.io-adapter: 2.5.5 socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate + dev: true - source-map-support@0.5.21: + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + dev: true - source-map-support@0.5.9: + /source-map-support@0.5.9: + resolution: {integrity: sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + dev: true - source-map@0.6.1: {} + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true - statuses@1.5.0: {} + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true - statuses@2.0.1: {} + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: true - streamroller@3.1.5: + /streamroller@3.1.5: + resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} + engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.4 + debug: 4.3.5 fs-extra: 8.1.0 transitivePeerDependencies: - supports-color + dev: true - string-width@4.2.3: + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: true - strip-ansi@6.0.1: + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 + dev: true - supports-color@7.2.0: + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 + dev: true - tmp@0.0.33: + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 + dev: true - tmp@0.2.3: {} + /tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + dev: true - to-regex-range@5.0.1: + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + dev: true - toidentifier@1.0.1: {} + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: true - tsickle@0.46.3(typescript@5.4.5): + /tsickle@0.46.3(typescript@4.9.5): + resolution: {integrity: sha512-9PDXxOrtn2AdpvDin6FLGveXVGg8ec3ga8fh8mPR5lz9KtitW6riVgxgagicdfF1rgiBxDeH+5hVowPXhmZbYQ==} + peerDependencies: + typescript: ~4.7.2 dependencies: - '@types/minimist': 1.2.2 - typescript: 5.4.5 + '@types/minimist': 1.2.5 + typescript: 4.9.5 + dev: true - tslib@1.14.1: {} + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true - tslib@2.6.2: {} + /tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + dev: true - tsutils@3.21.0(typescript@5.4.5): + /tsutils@3.21.0(typescript@4.9.5): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.4.5 + typescript: 4.9.5 + dev: true - type-is@1.6.18: + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 mime-types: 2.1.35 + dev: true - typescript@3.9.10: {} + /typescript@3.9.10: + resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true - typescript@5.4.5: {} + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true - ua-parser-js@0.7.37: {} + /ua-parser-js@0.7.38: + resolution: {integrity: sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==} + dev: true - undici-types@5.26.5: {} + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true - universalify@0.1.2: {} + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: true - universalify@2.0.0: {} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true - unpipe@1.0.0: {} + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true - utils-merge@1.0.1: {} + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true - vary@1.1.2: {} + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true - void-elements@2.0.1: {} + /void-elements@2.0.1: + resolution: {integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==} + engines: {node: '>=0.10.0'} + dev: true - which@1.3.1: + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true dependencies: isexe: 2.0.0 + dev: true - which@3.0.1: + /which@3.0.1: + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true dependencies: isexe: 2.0.0 + dev: true - wrap-ansi@7.0.0: + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true - wrappy@1.0.2: {} + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true - ws@8.11.0: {} + /ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true - xmlbuilder@12.0.0: {} + /xmlbuilder@12.0.0: + resolution: {integrity: sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==} + engines: {node: '>=6.0'} + dev: true - y18n@5.0.8: {} + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true - yaml@1.10.2: {} + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true - yargs-parser@20.2.9: {} + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true - yargs@16.2.0: + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} dependencies: cliui: 7.0.4 escalade: 3.1.2 @@ -2027,3 +1825,4 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 + dev: true diff --git a/tools/defs.bzl b/tools/defs.bzl index 55c3e71..2221dee 100644 --- a/tools/defs.bzl +++ b/tools/defs.bzl @@ -4,11 +4,11 @@ load( "@elide//tools/defs/closure:externs.bzl", _closure_extern = "closure_extern", - _extern = "extern", _js_extern = "js_extern", ) load( "@elide//tools/defs:elide.bzl", + _py_library = "py_library", _js_library = "js_library", _ts_library = "ts_library", _ts_config = "ts_config", @@ -21,6 +21,7 @@ extern = _js_extern js_extern = _js_extern ## Elide: Macros. +py_library = _py_library js_library = _js_library ts_library = _ts_library ts_config = _ts_config diff --git a/tools/defs/elide.bzl b/tools/defs/elide.bzl index e8de77c..3bda703 100644 --- a/tools/defs/elide.bzl +++ b/tools/defs/elide.bzl @@ -71,6 +71,8 @@ _RUNTIME_DEFINES.update({ _JS_MODULE_PREFIX = "@elide/runtime/module" _ARCHIVE_ROOT_PREFIX = "__runtime__" +_ELIDE_MODULE_ROOT_PREFIX = "node_modules" +_ELIDE_MODULE_PREFIX = "elide" _common_js_library_config = { "language": _JS_LANGUAGE, @@ -140,6 +142,7 @@ def _js_module( entry_point = None, module = None, host_module = None, + elide_module = False, js_srcs = [], srcs = [], deps = [], @@ -246,6 +249,11 @@ def _js_module( archive_prefix = "%s/%s/" % (_ARCHIVE_ROOT_PREFIX, module or name) if host_module: archive_prefix = "%s/%s/%s/" % (_ARCHIVE_ROOT_PREFIX, host_module, module or name) + if elide_module: + if host_module: + archive_prefix = "%s/%s:%s/%s/" % (_ELIDE_MODULE_ROOT_PREFIX, _ELIDE_MODULE_PREFIX, host_module, module or name) + else: + archive_prefix = "%s/%s:%s/" % (_ELIDE_MODULE_ROOT_PREFIX, _ELIDE_MODULE_PREFIX, module or name) _pkg_filegroup( name = "%s.tarfilegroup" % name, @@ -263,6 +271,47 @@ def _js_module( actual = "%s.tarfilegroup" % name, ) +def _py_library( + name, + srcs, + module = None, + deps = [], + data = [], + **kwargs): + """Defines a Python package.""" + + native.filegroup( + name = "%s.files" % name, + srcs = srcs + deps, + data = data, + ) + _pkg_tar( + name = "%s.archive" % name, + out = "%s.tar" % name, + srcs = [":%s.files" % name], + package_dir = "%s/python/%s/" % (_ARCHIVE_ROOT_PREFIX, module or name), + ) + native.alias( + name = name, + actual = "%s.archive" % name, + ) + +def _py_runtime( + name, + deps, + extra_sources = [], + **kwargs): + """Single-use target macro which defines the main application entry target for the Elide Python runtime.""" + + native.filegroup( + name = "%s.files" % name, + srcs = extra_sources + deps, + ) + native.alias( + name = name, + actual = "%s.files" % name, + ) + def _js_runtime( name, main, @@ -440,56 +489,101 @@ def _ts_runtime( actual = "tsruntime.tarball", ) -def _runtime_dist(name, language, target, manifest, info = [], configs = [], modules = [], extra_sources = []): +def _runtime_dist(name, language, target, manifest, info = [], configs = [], modules = [], elide_modules = [], extra_sources = []): """ """ outs = [] - native.filegroup( - name = "distfiles", - srcs = [ - "runtime.js.gz", - "runtime.js.gz.sha256", - ] + configs + extra_sources, - ) - if len(modules) > 0: + if language == "js": + native.filegroup( + name = "distfiles", + srcs = [ + "runtime.js.gz", + "runtime.js.gz.sha256", + ] + configs + extra_sources, + ) + if len(modules) > 0: + _pkg_tar( + name = "%s.elide-modules" % language, + out = "%s.elide-modules.tar" % language, + extension = "tar", + srcs = elide_modules, + ) + _pkg_tar( + name = "%s.modules" % language, + out = "%s.modules.tar" % language, + extension = "tar", + srcs = modules, + deps = ["%s.elide-modules" % language], + ) + outs.append(":%s.modules" % language) _pkg_tar( - name = "%s.modules" % language, - out = "%s.modules.tar.gz" % language, - extension = "tar.gz", + name = "%s.tarball" % language, + out = "%s.dist.tar" % language, + srcs = [":distfiles"] + modules, + ) + _jar_resources( + name = "%s.runtime" % language, + language = language, + manifest = manifest, + srcs = [":distfiles"], + ) + native.filegroup( + name = "distributions", + srcs = [ + ":%s.tarball" % language, + ":%s.runtime" % language, + ] + info, + ) + + _pkg_zip( + name = "dist-all", + out = "%s.dist-all.zip" % language, + srcs = [":distributions"], + ) + native.filegroup( + name = "dist-all-outs", + srcs = [ + ":dist-all", + ] + outs + ) + + elif language == "py": + if len(modules) > 0: + _pkg_tar( + name = "%s.modules" % language, + out = "%s.modules.tar" % language, + extension = "tar", + deps = modules, + ) + outs.append(":%s.modules" % language) + + _pkg_tar( + name = "%s.tarball" % language, + out = "%s.dist.tar" % language, srcs = modules, ) - outs.append(":%s.modules" % language) - _pkg_tar( - name = "%s.tarball" % language, - out = "%s.dist.tar" % language, - srcs = [":distfiles"] + modules, - ) - _jar_resources( - name = "%s.runtime" % language, - language = language, - manifest = manifest, - srcs = [":distfiles"], - ) - native.filegroup( - name = "distributions", - srcs = [ - ":%s.tarball" % language, - ":%s.runtime" % language, - ] + info, - ) + native.filegroup( + name = "distributions", + srcs = [ + ":%s.tarball" % language, + ] + info, + ) + _pkg_tar( + name = "dist-all", + out = "%s.dist-all.tar" % language, + srcs = [":distributions"], + ) + native.filegroup( + name = "dist-all-outs", + srcs = [ + ":dist-all", + ] + outs + ) - _pkg_tar( - name = "dist-all", - out = "%s.dist-all.tar" % language, - srcs = [":distributions"], - ) - native.filegroup( - name = "dist-all-outs", - srcs = [ - ":dist-all", - ] + outs - ) + + else: + fail("Unrecognized language: %s" % language) native.alias( name = name, @@ -509,3 +603,5 @@ ts_library = _ts_library ts_config = _ts_config ts_runtime = _ts_runtime runtime_dist = _runtime_dist +py_library = _py_library +py_runtime = _py_runtime diff --git a/tools/defs/tsc/compiler/BUILD.bazel b/tools/defs/tsc/compiler/BUILD.bazel index 72c9f65..93e7821 100644 --- a/tools/defs/tsc/compiler/BUILD.bazel +++ b/tools/defs/tsc/compiler/BUILD.bazel @@ -1,14 +1,13 @@ """Macros and configurations for integrating TypeScript with Closure.""" - -package( - default_visibility = ["//visibility:public"], -) - load( "@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary", ) +package( + default_visibility = ["//visibility:public"], +) + nodejs_binary( name = "tsc_wrapped", data = [ diff --git a/tools/defs/tsc/typescript.bzl b/tools/defs/tsc/typescript.bzl index 356a701..28c47e0 100644 --- a/tools/defs/tsc/typescript.bzl +++ b/tools/defs/tsc/typescript.bzl @@ -37,6 +37,7 @@ _BASE_JS_DEPS = [ _BASE_SUPPRESSIONS = [ "JSC_UNREACHABLE_CODE", + "JSC_UNKNOWN_EXPR_TYPE", ] _BASE_TS_ARGS = { @@ -48,6 +49,8 @@ _BASE_TS_ARGS = { "tsconfig": "//elide/runtime/js:tsconfig", } +_TS_GLOBAL_TYPES = ["//types"] + def _fixup_shortlabel(label): """Fixup a short-label which has no target.""" if label.startswith("@"): @@ -66,6 +69,7 @@ def _wrapped_ts_library( lib_kwargs = {}, suppress = [], include_tools = True, + include_types = True, nowrap = False, *args, **kwargs): @@ -94,6 +98,8 @@ def _wrapped_ts_library( else: ts_deps_resolved = _BASE_TS_DEPS + ["%s_ts" % _fixup_shortlabel(i) for i in deps] closure_deps_resolved = ["%s_js" % _fixup_shortlabel(i) for i in closure_deps] + if include_types: + ts_deps_resolved += _TS_GLOBAL_TYPES if include_tools: ts_deps_resolved += _BASE_TS_TOOLS diff --git a/tsconfig.base.json b/tsconfig.base.json index d37ebbe..cdff439 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -17,6 +17,7 @@ "es2021", "ES2021.Promise", "es2021.intl", + "es2022", "esnext" ], @@ -98,7 +99,10 @@ // Explicitly set types settings so typescript doesn't auto-discover types. // If all types are discovered then all types need to be included as deps // or typescript may error out with TS2688: Cannot find type definition file for 'foo'. - "types": [] + "types": [], + + // Mount local type declarations. + "typeRoots": ["./types"] }, "exclude": [ "node_modules" diff --git a/types/BUILD.bazel b/types/BUILD.bazel new file mode 100644 index 0000000..7ba88e3 --- /dev/null +++ b/types/BUILD.bazel @@ -0,0 +1,24 @@ +load( + "@npm//@bazel/typescript:index.bzl", + _pure_ts_library = "ts_library", +) + +package( + default_visibility = ["//visibility:public"], +) + +filegroup( + name = "srcs", + srcs = ["primordials.d.ts"], +) + +_pure_ts_library( + name = "ts", + srcs = [":srcs"], +) + + +alias( + name = "types", + actual = ":ts", +) diff --git a/types/primordials.d.ts b/types/primordials.d.ts new file mode 100644 index 0000000..e161edd --- /dev/null +++ b/types/primordials.d.ts @@ -0,0 +1,10 @@ + +export type PrimordialsObject = { + [key: string]: any; +}; + +declare global { + const primordials: PrimordialsObject; +} + +export {}; diff --git a/yarn.lock b/yarn.lock index 019a965..87f18b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -259,15 +259,10 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/node@*", "@types/node@>=10.0.0", "@types/node@>=13.7.0": - version "20.4.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.5.tgz#9dc0a5cb1ccce4f7a731660935ab70b9c00a5d69" - integrity sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg== - -"@types/node@20.12.11": - version "20.12.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.11.tgz#c4ef00d3507000d17690643278a60dc55a9dc9be" - integrity sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw== +"@types/node@*", "@types/node@20.14.2", "@types/node@>=10.0.0", "@types/node@>=13.7.0": + version "20.14.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18" + integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q== dependencies: undici-types "~5.26.4" @@ -652,9 +647,9 @@ flatted@^3.2.7: integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== follow-redirects@^1.0.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== fs-extra@^8.1.0: version "8.1.0" @@ -1423,10 +1418,10 @@ tsickle@0.46.3: dependencies: "@types/minimist" "^1.2.1" -tslib@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +tslib@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== tslib@^1.8.1: version "1.14.1"