mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 02:11:53 +00:00
Merge branch 'next/minor' of github.com:Start9Labs/start-os into next/major
This commit is contained in:
@@ -4,6 +4,8 @@ Description=StartOS Container Runtime
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/node --experimental-detect-module --unhandled-rejections=warn /usr/lib/startos/init/index.js
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
4008
container-runtime/package-lock.json
generated
4008
container-runtime/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -198,6 +198,9 @@ export function makeEffects(context: EffectContext): Effects {
|
||||
T.Effects["getContainerIp"]
|
||||
>
|
||||
},
|
||||
getOsIp(...[]: Parameters<T.Effects["getOsIp"]>) {
|
||||
return rpcRound("get-os-ip", {}) as ReturnType<T.Effects["getOsIp"]>
|
||||
},
|
||||
getHostInfo: ((...[allOptions]: Parameters<T.Effects["getHostInfo"]>) => {
|
||||
const options = {
|
||||
...allOptions,
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import { ExtendedVersion, types as T, utils } from "@start9labs/start-sdk"
|
||||
import {
|
||||
ExtendedVersion,
|
||||
types as T,
|
||||
utils,
|
||||
VersionRange,
|
||||
} from "@start9labs/start-sdk"
|
||||
import * as fs from "fs/promises"
|
||||
|
||||
import { polyfillEffects } from "./polyfillEffects"
|
||||
@@ -345,13 +350,11 @@ export class SystemForEmbassy implements System {
|
||||
const previousVersion = await effects.getDataVersion()
|
||||
if (previousVersion) {
|
||||
if (
|
||||
(await this.migration(effects, previousVersion, timeoutMs)).configured
|
||||
(await this.migration(effects, { from: previousVersion }, timeoutMs))
|
||||
.configured
|
||||
) {
|
||||
await effects.action.clearRequests({ only: ["needs-config"] })
|
||||
}
|
||||
await effects.setDataVersion({
|
||||
version: ExtendedVersion.parseEmver(this.manifest.version).toString(),
|
||||
})
|
||||
} else if (this.manifest.config) {
|
||||
await effects.action.request({
|
||||
packageId: this.manifest.id,
|
||||
@@ -361,6 +364,9 @@ export class SystemForEmbassy implements System {
|
||||
reason: "This service must be configured before it can be run",
|
||||
})
|
||||
}
|
||||
await effects.setDataVersion({
|
||||
version: ExtendedVersion.parseEmver(this.manifest.version).toString(),
|
||||
})
|
||||
}
|
||||
async exportNetwork(effects: Effects) {
|
||||
for (const [id, interfaceValue] of Object.entries(
|
||||
@@ -542,7 +548,10 @@ export class SystemForEmbassy implements System {
|
||||
nextVersion: Optional<string>,
|
||||
timeoutMs: number | null,
|
||||
): Promise<void> {
|
||||
// TODO Do a migration down if the version exists
|
||||
await this.currentRunning?.clean({ timeout: timeoutMs ?? undefined })
|
||||
if (nextVersion) {
|
||||
await this.migration(effects, { to: nextVersion }, timeoutMs)
|
||||
}
|
||||
await effects.setMainStatus({ status: "stopped" })
|
||||
}
|
||||
|
||||
@@ -746,46 +755,37 @@ export class SystemForEmbassy implements System {
|
||||
|
||||
async migration(
|
||||
effects: Effects,
|
||||
fromVersion: string,
|
||||
version: { from: string } | { to: string },
|
||||
timeoutMs: number | null,
|
||||
): Promise<{ configured: boolean }> {
|
||||
const fromEmver = ExtendedVersion.parseEmver(fromVersion)
|
||||
const currentEmver = ExtendedVersion.parseEmver(this.manifest.version)
|
||||
if (!this.manifest.migrations) return { configured: true }
|
||||
const fromMigration = Object.entries(this.manifest.migrations.from)
|
||||
.map(
|
||||
([version, procedure]) =>
|
||||
[ExtendedVersion.parseEmver(version), procedure] as const,
|
||||
)
|
||||
.find(
|
||||
([versionEmver, procedure]) =>
|
||||
versionEmver.greaterThan(fromEmver) &&
|
||||
versionEmver.lessThanOrEqual(currentEmver),
|
||||
)
|
||||
const toMigration = Object.entries(this.manifest.migrations.to)
|
||||
.map(
|
||||
([version, procedure]) =>
|
||||
[ExtendedVersion.parseEmver(version), procedure] as const,
|
||||
)
|
||||
.find(
|
||||
([versionEmver, procedure]) =>
|
||||
versionEmver.greaterThan(fromEmver) &&
|
||||
versionEmver.lessThanOrEqual(currentEmver),
|
||||
)
|
||||
|
||||
// prettier-ignore
|
||||
const migration = (
|
||||
fromEmver.greaterThan(currentEmver) ? [toMigration, fromMigration] :
|
||||
[fromMigration, toMigration]).filter(Boolean)[0]
|
||||
let migration
|
||||
let args: [string, ...string[]]
|
||||
if ("from" in version) {
|
||||
args = [version.from, "from"]
|
||||
const fromExver = ExtendedVersion.parse(version.from)
|
||||
if (!this.manifest.migrations) return { configured: true }
|
||||
migration = Object.entries(this.manifest.migrations.from)
|
||||
.map(
|
||||
([version, procedure]) =>
|
||||
[VersionRange.parseEmver(version), procedure] as const,
|
||||
)
|
||||
.find(([versionEmver, _]) => versionEmver.satisfiedBy(fromExver))
|
||||
} else {
|
||||
args = [version.to, "to"]
|
||||
const toExver = ExtendedVersion.parse(version.to)
|
||||
if (!this.manifest.migrations) return { configured: true }
|
||||
migration = Object.entries(this.manifest.migrations.to)
|
||||
.map(
|
||||
([version, procedure]) =>
|
||||
[VersionRange.parseEmver(version), procedure] as const,
|
||||
)
|
||||
.find(([versionEmver, _]) => versionEmver.satisfiedBy(toExver))
|
||||
}
|
||||
|
||||
if (migration) {
|
||||
const [version, procedure] = migration
|
||||
const [_, procedure] = migration
|
||||
if (procedure.type === "docker") {
|
||||
const commands = [
|
||||
procedure.entrypoint,
|
||||
...procedure.args,
|
||||
JSON.stringify(fromVersion),
|
||||
]
|
||||
const commands = [procedure.entrypoint, ...procedure.args]
|
||||
const container = await DockerProcedureContainer.of(
|
||||
effects,
|
||||
this.manifest.id,
|
||||
@@ -794,7 +794,11 @@ export class SystemForEmbassy implements System {
|
||||
`Migration - ${commands.join(" ")}`,
|
||||
)
|
||||
return JSON.parse(
|
||||
(await container.execFail(commands, timeoutMs)).stdout.toString(),
|
||||
(
|
||||
await container.execFail(commands, timeoutMs, {
|
||||
input: JSON.stringify(args[0]),
|
||||
})
|
||||
).stdout.toString(),
|
||||
)
|
||||
} else if (procedure.type === "script") {
|
||||
const moduleCode = await this.moduleCode
|
||||
@@ -803,7 +807,7 @@ export class SystemForEmbassy implements System {
|
||||
throw new Error("Expecting that the method migration exists")
|
||||
return (await method(
|
||||
polyfillEffects(effects, this.manifest),
|
||||
fromVersion as string,
|
||||
...args,
|
||||
).then((x) => {
|
||||
if ("result" in x) return x.result
|
||||
if ("error" in x) throw new Error("Error getting config: " + x.error)
|
||||
@@ -974,7 +978,7 @@ export class SystemForEmbassy implements System {
|
||||
})) as U.Config
|
||||
if (!oldConfig) return
|
||||
const moduleCode = await this.moduleCode
|
||||
const method = moduleCode.dependencies?.[id]?.autoConfigure
|
||||
const method = moduleCode?.dependencies?.[id]?.autoConfigure
|
||||
if (!method) return
|
||||
const newConfig = (await method(
|
||||
polyfillEffects(effects, this.manifest),
|
||||
@@ -1177,9 +1181,14 @@ function extractServiceInterfaceId(manifest: Manifest, specInterface: string) {
|
||||
return serviceInterfaceId
|
||||
}
|
||||
async function convertToNewConfig(value: OldGetConfigRes) {
|
||||
const valueSpec: OldConfigSpec = matchOldConfigSpec.unsafeCast(value.spec)
|
||||
const spec = transformConfigSpec(valueSpec)
|
||||
if (!value.config) return { spec, config: null }
|
||||
const config = transformOldConfigToNew(valueSpec, value.config)
|
||||
return { spec, config }
|
||||
try {
|
||||
const valueSpec: OldConfigSpec = matchOldConfigSpec.unsafeCast(value.spec)
|
||||
const spec = transformConfigSpec(valueSpec)
|
||||
if (!value.config) return { spec, config: null }
|
||||
const config = transformOldConfigToNew(valueSpec, value.config) ?? null
|
||||
return { spec, config }
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
||||
@@ -444,8 +444,8 @@ function parseDfOutput(output: string): { used: number; total: number } {
|
||||
.map((x) => x.split(/\s+/))
|
||||
const index = lines.splice(0, 1)[0].map((x) => x.toLowerCase())
|
||||
const usedIndex = index.indexOf("used")
|
||||
const availableIndex = index.indexOf("available")
|
||||
const sizeIndex = index.indexOf("size")
|
||||
const used = lines.map((x) => Number.parseInt(x[usedIndex]))[0] || 0
|
||||
const total = lines.map((x) => Number.parseInt(x[availableIndex]))[0] || 0
|
||||
const total = lines.map((x) => Number.parseInt(x[sizeIndex]))[0] || 0
|
||||
return { used, total }
|
||||
}
|
||||
|
||||
@@ -146,6 +146,7 @@ export function transformOldConfigToNew(
|
||||
spec: OldConfigSpec,
|
||||
config: Record<string, any>,
|
||||
): Record<string, any> {
|
||||
if (!config) return config
|
||||
return Object.entries(spec).reduce((obj, [key, val]) => {
|
||||
let newVal = config[key]
|
||||
|
||||
@@ -157,9 +158,16 @@ export function transformOldConfigToNew(
|
||||
}
|
||||
|
||||
if (isUnion(val)) {
|
||||
const selection = config[key][val.tag.id]
|
||||
if (!config[key]) return obj
|
||||
|
||||
const selection = config[key]?.[val.tag.id]
|
||||
|
||||
if (!selection) return obj
|
||||
|
||||
delete config[key][val.tag.id]
|
||||
|
||||
if (!val.variants[selection]) return obj
|
||||
|
||||
newVal = {
|
||||
selection,
|
||||
value: transformOldConfigToNew(
|
||||
@@ -170,6 +178,8 @@ export function transformOldConfigToNew(
|
||||
}
|
||||
|
||||
if (isList(val) && isObjectList(val)) {
|
||||
if (!config[key]) return obj
|
||||
|
||||
newVal = (config[key] as object[]).map((obj) =>
|
||||
transformOldConfigToNew(
|
||||
matchOldConfigSpec.unsafeCast(val.spec.spec),
|
||||
|
||||
750
core/Cargo.lock
generated
750
core/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -40,11 +40,15 @@ if [[ "${ENVIRONMENT}" =~ (^|-)unstable($|-) ]]; then
|
||||
RUSTFLAGS="--cfg tokio_unstable"
|
||||
fi
|
||||
|
||||
alias 'rust-zig-builder'='docker run $USE_TTY --rm -e "RUSTFLAGS=$RUSTFLAGS" -v "$HOME/.cargo/registry":/root/.cargo/registry -v "$HOME/.cargo/git":/root/.cargo/git -v "$(pwd)":/home/rust/src -w /home/rust/src -P messense/cargo-zigbuild'
|
||||
if which zig > /dev/null && [ "$ENFORCE_USE_DOCKER" != 1 ]; do
|
||||
echo "FEATURES=\"$FEATURES\""
|
||||
echo "RUSTFLAGS=\"$RUSTFLAGS\""
|
||||
RUSTFLAGS=$RUSTFLAGS sh -c "cd core && cargo zigbuild --release --no-default-features --features cli,$FEATURES --locked --bin start-cli --target=$TARGET"
|
||||
else
|
||||
alias 'rust-zig-builder'='docker run $USE_TTY --rm -e "RUSTFLAGS=$RUSTFLAGS" -v "$HOME/.cargo/registry":/root/.cargo/registry -v "$HOME/.cargo/git":/root/.cargo/git -v "$(pwd)":/home/rust/src -w /home/rust/src -P messense/cargo-zigbuild'
|
||||
RUSTFLAGS=$RUSTFLAGS rust-zig-builder sh -c "cd core && cargo zigbuild --release --no-default-features --features cli,$FEATURES --locked --bin start-cli --target=$TARGET"
|
||||
|
||||
echo "FEATURES=\"$FEATURES\""
|
||||
echo "RUSTFLAGS=\"$RUSTFLAGS\""
|
||||
rust-zig-builder sh -c "cd core && cargo zigbuild --release --no-default-features --features cli,daemon,$FEATURES --locked --bin start-cli --target=$TARGET"
|
||||
if [ "$(ls -nd core/target/$TARGET/release/start-cli | awk '{ print $3 }')" != "$UID" ]; then
|
||||
rust-zig-builder sh -c "cd core && chown -R $UID:$UID target && chown -R $UID:$UID /root/.cargo"
|
||||
if [ "$(ls -nd core/target/$TARGET/release/start-cli | awk '{ print $3 }')" != "$UID" ]; then
|
||||
rust-zig-builder sh -c "cd core && chown -R $UID:$UID target && chown -R $UID:$UID /root/.cargo"
|
||||
fi
|
||||
fi
|
||||
@@ -14,7 +14,7 @@ keywords = [
|
||||
name = "start-os"
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/Start9Labs/start-os"
|
||||
version = "0.3.6-alpha.13" # VERSION_BUMP
|
||||
version = "0.3.6-alpha.15" # VERSION_BUMP
|
||||
license = "MIT"
|
||||
|
||||
[lib]
|
||||
@@ -40,7 +40,7 @@ path = "src/main.rs"
|
||||
[features]
|
||||
cli = []
|
||||
container-runtime = ["procfs", "tty-spawn"]
|
||||
daemon = []
|
||||
daemon = ["mail-send"]
|
||||
registry = []
|
||||
default = ["cli", "daemon", "registry", "container-runtime"]
|
||||
dev = []
|
||||
@@ -71,7 +71,7 @@ basic-cookies = "0.1.4"
|
||||
blake3 = { version = "1.5.0", features = ["mmap", "rayon"] }
|
||||
bytes = "1"
|
||||
chrono = { version = "0.4.31", features = ["serde"] }
|
||||
clap = "4.4.12"
|
||||
clap = { version = "4.4.12", features = ["string"] }
|
||||
color-eyre = "0.6.2"
|
||||
console = "0.15.7"
|
||||
console-subscriber = { version = "0.3.0", optional = true }
|
||||
@@ -167,7 +167,7 @@ procfs = { version = "0.16.0", optional = true }
|
||||
proptest = "1.3.1"
|
||||
proptest-derive = "0.5.0"
|
||||
qrcode = "0.14.1"
|
||||
rand = { version = "0.8.5", features = ["std"] }
|
||||
rand = "0.9.0"
|
||||
regex = "1.10.2"
|
||||
reqwest = { version = "0.12.4", features = ["stream", "json", "socks"] }
|
||||
reqwest_cookie_store = "0.8.0"
|
||||
@@ -224,7 +224,7 @@ urlencoding = "2.1.3"
|
||||
uuid = { version = "1.4.1", features = ["v4"] }
|
||||
zbus = "5.1.1"
|
||||
zeroize = "1.6.0"
|
||||
mail-send = { git = "https://github.com/dr-bonez/mail-send.git", branch = "main" }
|
||||
mail-send = { git = "https://github.com/dr-bonez/mail-send.git", branch = "main", optional = true }
|
||||
rustls = "0.23.20"
|
||||
rustls-pki-types = { version = "1.10.1", features = ["alloc"] }
|
||||
|
||||
|
||||
@@ -38,9 +38,10 @@ impl AccountInfo {
|
||||
let root_ca_key = generate_key()?;
|
||||
let root_ca_cert = make_root_cert(&root_ca_key, &hostname, start_time)?;
|
||||
let ssh_key = ssh_key::PrivateKey::from(ssh_key::private::Ed25519Keypair::random(
|
||||
&mut rand::thread_rng(),
|
||||
&mut ssh_key::rand_core::OsRng::default(),
|
||||
));
|
||||
let compat_s9pk_key = ed25519_dalek::SigningKey::generate(&mut rand::thread_rng());
|
||||
let compat_s9pk_key =
|
||||
ed25519_dalek::SigningKey::generate(&mut ssh_key::rand_core::OsRng::default());
|
||||
Ok(Self {
|
||||
server_id,
|
||||
hostname,
|
||||
|
||||
@@ -82,11 +82,13 @@ impl OsBackupV0 {
|
||||
root_ca_key: self.root_ca_key.0,
|
||||
root_ca_cert: self.root_ca_cert.0,
|
||||
ssh_key: ssh_key::PrivateKey::random(
|
||||
&mut rand::thread_rng(),
|
||||
&mut ssh_key::rand_core::OsRng::default(),
|
||||
ssh_key::Algorithm::Ed25519,
|
||||
)?,
|
||||
tor_keys: vec![TorSecretKeyV3::from(self.tor_key.0)],
|
||||
compat_s9pk_key: ed25519_dalek::SigningKey::generate(&mut rand::thread_rng()),
|
||||
compat_s9pk_key: ed25519_dalek::SigningKey::generate(
|
||||
&mut ssh_key::rand_core::OsRng::default(),
|
||||
),
|
||||
},
|
||||
ui: self.ui,
|
||||
})
|
||||
|
||||
@@ -2,6 +2,7 @@ use std::cmp::max;
|
||||
use std::ffi::OsString;
|
||||
use std::net::IpAddr;
|
||||
use std::sync::Arc;
|
||||
use std::time::Duration;
|
||||
|
||||
use clap::Parser;
|
||||
use color_eyre::eyre::eyre;
|
||||
@@ -149,8 +150,7 @@ pub fn main(args: impl IntoIterator<Item = OsString>) {
|
||||
.enable_all()
|
||||
.build()
|
||||
.expect("failed to initialize runtime");
|
||||
rt.block_on(async {
|
||||
let addrs = crate::net::utils::all_socket_addrs_for(80).await?;
|
||||
let res = rt.block_on(async {
|
||||
let mut server = WebServer::new(Acceptor::bind_upgradable(
|
||||
SelfContainedNetworkInterfaceListener::bind(80),
|
||||
));
|
||||
@@ -195,7 +195,9 @@ pub fn main(args: impl IntoIterator<Item = OsString>) {
|
||||
.await
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
rt.shutdown_timeout(Duration::from_secs(60));
|
||||
res
|
||||
};
|
||||
|
||||
match res {
|
||||
|
||||
@@ -13,6 +13,7 @@ use crate::disk::OsPartitionInfo;
|
||||
use crate::init::init_postgres;
|
||||
use crate::prelude::*;
|
||||
use crate::util::serde::IoFormat;
|
||||
use crate::version::VersionT;
|
||||
use crate::MAIN_DATA;
|
||||
|
||||
pub const DEVICE_CONFIG_PATH: &str = "/media/startos/config/config.yaml"; // "/media/startos/config/config.yaml";
|
||||
@@ -57,18 +58,20 @@ pub trait ContextConfig: DeserializeOwned + Default {
|
||||
#[derive(Debug, Default, Deserialize, Serialize, Parser)]
|
||||
#[serde(rename_all = "kebab-case")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
#[command(name = "start-cli")]
|
||||
#[command(version = crate::version::Current::default().semver().to_string())]
|
||||
pub struct ClientConfig {
|
||||
#[arg(short = 'c', long = "config")]
|
||||
#[arg(short = 'c', long)]
|
||||
pub config: Option<PathBuf>,
|
||||
#[arg(short = 'h', long = "host")]
|
||||
#[arg(short = 'H', long)]
|
||||
pub host: Option<Url>,
|
||||
#[arg(short = 'r', long = "registry")]
|
||||
#[arg(short = 'r', long)]
|
||||
pub registry: Option<Url>,
|
||||
#[arg(short = 'p', long = "proxy")]
|
||||
#[arg(short = 'p', long)]
|
||||
pub proxy: Option<Url>,
|
||||
#[arg(long = "cookie-path")]
|
||||
#[arg(long)]
|
||||
pub cookie_path: Option<PathBuf>,
|
||||
#[arg(long = "developer-key-path")]
|
||||
#[arg(long)]
|
||||
pub developer_key_path: Option<PathBuf>,
|
||||
}
|
||||
impl ContextConfig for ClientConfig {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use std::backtrace;
|
||||
use std::collections::{BTreeMap, BTreeSet};
|
||||
use std::future::Future;
|
||||
use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};
|
||||
@@ -484,10 +485,12 @@ impl Drop for RpcContext {
|
||||
fn drop(&mut self) {
|
||||
#[cfg(feature = "unstable")]
|
||||
if self.0.is_closed.load(Ordering::SeqCst) {
|
||||
tracing::info!(
|
||||
"RpcContext dropped. {} left.",
|
||||
Arc::strong_count(&self.0) - 1
|
||||
);
|
||||
let count = Arc::strong_count(&self.0) - 1;
|
||||
tracing::info!("RpcContext dropped. {} left.", count);
|
||||
if count > 0 {
|
||||
tracing::debug!("{}", backtrace::Backtrace::force_capture());
|
||||
tracing::debug!("{:?}", eyre!(""))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,5 +32,7 @@ pub struct Private {
|
||||
}
|
||||
|
||||
pub fn generate_compat_key() -> Pem<ed25519_dalek::SigningKey> {
|
||||
Pem(ed25519_dalek::SigningKey::generate(&mut rand::thread_rng()))
|
||||
Pem(ed25519_dalek::SigningKey::generate(
|
||||
&mut ssh_key::rand_core::OsRng::default(),
|
||||
))
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ pub fn init(ctx: CliContext) -> Result<(), Error> {
|
||||
.with_ctx(|_| (crate::ErrorKind::Filesystem, parent.display().to_string()))?;
|
||||
}
|
||||
tracing::info!("Generating new developer key...");
|
||||
let secret = SigningKey::generate(&mut rand::thread_rng());
|
||||
let secret = SigningKey::generate(&mut ssh_key::rand_core::OsRng::default());
|
||||
tracing::info!("Writing key to {}", ctx.developer_key_path.display());
|
||||
let keypair_bytes = ed25519::KeypairBytes {
|
||||
secret_key: secret.to_bytes(),
|
||||
|
||||
@@ -514,11 +514,17 @@ pub async fn cli_install(
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct UninstallParams {
|
||||
id: PackageId,
|
||||
#[arg(long, help = "Do not delete the service data")]
|
||||
#[serde(default)]
|
||||
soft: bool,
|
||||
#[arg(long, help = "Ignore errors in service uninit script")]
|
||||
#[serde(default)]
|
||||
force: bool,
|
||||
}
|
||||
|
||||
pub async fn uninstall(
|
||||
ctx: RpcContext,
|
||||
UninstallParams { id }: UninstallParams,
|
||||
UninstallParams { id, soft, force }: UninstallParams,
|
||||
) -> Result<PackageId, Error> {
|
||||
ctx.db
|
||||
.mutate(|db| {
|
||||
@@ -540,7 +546,7 @@ pub async fn uninstall(
|
||||
let return_id = id.clone();
|
||||
|
||||
tokio::spawn(async move {
|
||||
if let Err(e) = ctx.services.uninstall(&ctx, &id).await {
|
||||
if let Err(e) = ctx.services.uninstall(&ctx, &id, soft, force).await {
|
||||
tracing::error!("Error uninstalling service {id}: {e}");
|
||||
tracing::debug!("{e:?}");
|
||||
}
|
||||
|
||||
@@ -187,7 +187,7 @@ pub fn acme<C: Context>() -> ParentHandler<C> {
|
||||
from_fn_async(remove)
|
||||
.with_metadata("sync_db", Value::Bool(true))
|
||||
.no_display()
|
||||
.with_about("Setup ACME certificate acquisition")
|
||||
.with_about("Remove ACME certificate acquisition configuration")
|
||||
.with_call_remote::<CliContext>(),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -265,7 +265,9 @@ impl<A: Accept + Send + Sync + 'static> WebServer<A> {
|
||||
drop(queue_cell.write().unwrap().take());
|
||||
|
||||
if !runner.is_empty() {
|
||||
runner.await;
|
||||
tokio::time::timeout(Duration::from_secs(60), runner)
|
||||
.await
|
||||
.log_err();
|
||||
}
|
||||
}));
|
||||
Self {
|
||||
|
||||
@@ -54,8 +54,8 @@ pub fn wifi<C: Context>() -> ParentHandler<C> {
|
||||
.with_call_remote::<CliContext>(),
|
||||
)
|
||||
.subcommand(
|
||||
"delete",
|
||||
from_fn_async(delete)
|
||||
"remove",
|
||||
from_fn_async(remove)
|
||||
.no_display()
|
||||
.with_about("Remove a wifi network")
|
||||
.with_call_remote::<CliContext>(),
|
||||
@@ -230,7 +230,7 @@ pub async fn connect(ctx: RpcContext, SsidParams { ssid }: SsidParams) -> Result
|
||||
}
|
||||
|
||||
#[instrument(skip_all)]
|
||||
pub async fn delete(ctx: RpcContext, SsidParams { ssid }: SsidParams) -> Result<(), Error> {
|
||||
pub async fn remove(ctx: RpcContext, SsidParams { ssid }: SsidParams) -> Result<(), Error> {
|
||||
let wifi_manager = wifi_manager(&ctx)?;
|
||||
if !ssid.is_ascii() {
|
||||
return Err(Error::new(
|
||||
|
||||
@@ -30,15 +30,15 @@ pub fn notification<C: Context>() -> ParentHandler<C> {
|
||||
.with_call_remote::<CliContext>(),
|
||||
)
|
||||
.subcommand(
|
||||
"delete",
|
||||
from_fn_async(delete)
|
||||
"remove",
|
||||
from_fn_async(remove)
|
||||
.no_display()
|
||||
.with_about("Delete notification for a given id")
|
||||
.with_call_remote::<CliContext>(),
|
||||
)
|
||||
.subcommand(
|
||||
"delete-before",
|
||||
from_fn_async(delete_before)
|
||||
"remove-before",
|
||||
from_fn_async(remove_before)
|
||||
.no_display()
|
||||
.with_about("Delete notifications preceding a given id")
|
||||
.with_call_remote::<CliContext>(),
|
||||
@@ -126,7 +126,7 @@ pub struct DeleteParams {
|
||||
id: u32,
|
||||
}
|
||||
|
||||
pub async fn delete(ctx: RpcContext, DeleteParams { id }: DeleteParams) -> Result<(), Error> {
|
||||
pub async fn remove(ctx: RpcContext, DeleteParams { id }: DeleteParams) -> Result<(), Error> {
|
||||
ctx.db
|
||||
.mutate(|db| {
|
||||
db.as_private_mut().as_notifications_mut().remove(&id)?;
|
||||
@@ -142,7 +142,7 @@ pub struct DeleteBeforeParams {
|
||||
before: u32,
|
||||
}
|
||||
|
||||
pub async fn delete_before(
|
||||
pub async fn remove_before(
|
||||
ctx: RpcContext,
|
||||
DeleteBeforeParams { before }: DeleteBeforeParams,
|
||||
) -> Result<(), Error> {
|
||||
|
||||
@@ -51,7 +51,7 @@ fn test(files: Vec<(PathBuf, String)>) -> Result<(), Error> {
|
||||
check_set.insert(path.to_owned(), content);
|
||||
}
|
||||
}
|
||||
let key = SigningKey::generate(&mut rand::thread_rng());
|
||||
let key = SigningKey::generate(&mut ssh_key::rand_core::OsRng::default());
|
||||
let mut a1 = MerkleArchive::new(root, key, "test");
|
||||
tokio::runtime::Builder::new_current_thread()
|
||||
.enable_io()
|
||||
|
||||
@@ -27,6 +27,7 @@ pub const SIG_CONTEXT: &str = "s9pk";
|
||||
pub mod compat;
|
||||
pub mod manifest;
|
||||
pub mod pack;
|
||||
pub mod recipe;
|
||||
|
||||
/**
|
||||
/
|
||||
|
||||
@@ -26,6 +26,7 @@ use crate::s9pk::merkle_archive::source::{
|
||||
into_dyn_read, ArchiveSource, DynFileSource, DynRead, FileSource, TmpSource,
|
||||
};
|
||||
use crate::s9pk::merkle_archive::{Entry, MerkleArchive};
|
||||
use crate::s9pk::v2::recipe::DirRecipe;
|
||||
use crate::s9pk::v2::SIG_CONTEXT;
|
||||
use crate::s9pk::S9pk;
|
||||
use crate::util::io::{create_file, open_file, TmpDir};
|
||||
@@ -363,6 +364,7 @@ pub enum ImageSource {
|
||||
build_args: Option<BTreeMap<String, BuildArg>>,
|
||||
},
|
||||
DockerTag(String),
|
||||
// Recipe(DirRecipe),
|
||||
}
|
||||
impl ImageSource {
|
||||
pub fn ingredients(&self) -> Vec<PathBuf> {
|
||||
@@ -399,6 +401,8 @@ impl ImageSource {
|
||||
working_dir: PathBuf,
|
||||
#[serde(default)]
|
||||
user: String,
|
||||
entrypoint: Option<Vec<String>>,
|
||||
cmd: Option<Vec<String>>,
|
||||
}
|
||||
async move {
|
||||
match self {
|
||||
@@ -422,6 +426,9 @@ impl ImageSource {
|
||||
// docker buildx build ${path} -o type=image,name=start9/${id}
|
||||
let tag = format!("start9/{id}/{image_id}:{}", new_guid());
|
||||
let mut command = Command::new(CONTAINER_TOOL);
|
||||
if CONTAINER_TOOL == "docker" {
|
||||
command.arg("buildx");
|
||||
}
|
||||
command
|
||||
.arg("build")
|
||||
.arg(workdir)
|
||||
@@ -528,6 +535,8 @@ impl ImageSource {
|
||||
} else {
|
||||
config.user.into()
|
||||
},
|
||||
entrypoint: config.entrypoint,
|
||||
cmd: config.cmd,
|
||||
})
|
||||
.with_kind(ErrorKind::Serialization)?
|
||||
.into(),
|
||||
@@ -553,6 +562,7 @@ impl ImageSource {
|
||||
Command::new(CONTAINER_TOOL)
|
||||
.arg("create")
|
||||
.arg(&docker_platform)
|
||||
.arg("--entrypoint=/bin/sh")
|
||||
.arg(&tag)
|
||||
.invoke(ErrorKind::Docker)
|
||||
.await?,
|
||||
@@ -603,8 +613,8 @@ fn tar2sqfs(dest: impl AsRef<Path>) -> Result<Command, Error> {
|
||||
.arg("run")
|
||||
.arg("-i")
|
||||
.arg("--rm")
|
||||
.arg("-v")
|
||||
.arg(format!("{}:/data:rw", directory.display()))
|
||||
.arg("--mount")
|
||||
.arg(format!("type=bind,src={},dst=/data", directory.display()))
|
||||
.arg("ghcr.io/start9labs/sdk/utils:latest")
|
||||
.arg("tar2sqfs")
|
||||
.arg("-q")
|
||||
@@ -621,6 +631,8 @@ pub struct ImageMetadata {
|
||||
pub workdir: PathBuf,
|
||||
#[ts(type = "string")]
|
||||
pub user: InternedString,
|
||||
pub entrypoint: Option<Vec<String>>,
|
||||
pub cmd: Option<Vec<String>>,
|
||||
}
|
||||
|
||||
#[instrument(skip_all)]
|
||||
|
||||
21
core/startos/src/s9pk/v2/recipe.rs
Normal file
21
core/startos/src/s9pk/v2/recipe.rs
Normal file
@@ -0,0 +1,21 @@
|
||||
use std::collections::BTreeMap;
|
||||
use std::path::PathBuf;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use ts_rs::TS;
|
||||
use url::Url;
|
||||
|
||||
#[derive(Debug, Clone, Deserialize, Serialize, TS)]
|
||||
pub struct DirRecipe(BTreeMap<PathBuf, Recipe>);
|
||||
|
||||
#[derive(Debug, Clone, Deserialize, Serialize, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum Recipe {
|
||||
Make(PathBuf),
|
||||
Wget {
|
||||
#[ts(type = "string")]
|
||||
url: Url,
|
||||
checksum: String,
|
||||
},
|
||||
Recipe(DirRecipe),
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
use std::net::Ipv4Addr;
|
||||
|
||||
use rpc_toolkit::{from_fn, from_fn_async, from_fn_blocking, Context, HandlerExt, ParentHandler};
|
||||
|
||||
use crate::echo;
|
||||
use crate::prelude::*;
|
||||
use crate::service::cli::ContainerCliContext;
|
||||
use crate::service::effects::context::EffectContext;
|
||||
use crate::{echo, HOST_IP};
|
||||
|
||||
mod action;
|
||||
pub mod callbacks;
|
||||
@@ -134,6 +136,10 @@ pub fn handler<C: Context>() -> ParentHandler<C> {
|
||||
"get-container-ip",
|
||||
from_fn_async(net::info::get_container_ip).no_cli(),
|
||||
)
|
||||
.subcommand(
|
||||
"get-os-ip",
|
||||
from_fn(|_: C| Ok::<_, Error>(Ipv4Addr::from(HOST_IP))),
|
||||
)
|
||||
.subcommand(
|
||||
"export-service-interface",
|
||||
from_fn_async(net::interface::export_service_interface).no_cli(),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
use std::net::Ipv4Addr;
|
||||
|
||||
use crate::service::effects::prelude::*;
|
||||
use crate::HOST_IP;
|
||||
|
||||
pub async fn get_container_ip(context: EffectContext) -> Result<Ipv4Addr, Error> {
|
||||
let context = context.deref()?;
|
||||
|
||||
@@ -5,6 +5,7 @@ use models::ImageId;
|
||||
use tokio::process::Command;
|
||||
|
||||
use crate::disk::mount::filesystem::overlayfs::OverlayGuard;
|
||||
use crate::disk::mount::guard::GenericMountGuard;
|
||||
use crate::rpc_continuations::Guid;
|
||||
use crate::service::effects::prelude::*;
|
||||
use crate::service::persistent_container::Subcontainer;
|
||||
@@ -40,6 +41,24 @@ pub async fn destroy_subcontainer_fs(
|
||||
.await
|
||||
.remove(&guid)
|
||||
{
|
||||
#[cfg(feature = "container-runtime")]
|
||||
if tokio::fs::metadata(overlay.overlay.path().join("proc/1"))
|
||||
.await
|
||||
.is_ok()
|
||||
{
|
||||
let procfs = context
|
||||
.seed
|
||||
.persistent_container
|
||||
.lxc_container
|
||||
.get()
|
||||
.or_not_found("lxc container")?
|
||||
.rootfs_dir()
|
||||
.join("proc");
|
||||
let overlay_path = overlay.overlay.path().to_owned();
|
||||
tokio::task::spawn_blocking(move || sync::kill_init(&procfs, &overlay_path))
|
||||
.await
|
||||
.with_kind(ErrorKind::Unknown)??;
|
||||
}
|
||||
overlay.overlay.unmount(true).await?;
|
||||
} else {
|
||||
tracing::warn!("Could not find a subcontainer fs to destroy; assumming that it already is destroyed and will be skipping");
|
||||
|
||||
@@ -20,6 +20,54 @@ const FWD_SIGNALS: &[c_int] = &[
|
||||
SIGTSTP, SIGTTIN, SIGTTOU, SIGURG, SIGUSR1, SIGUSR2, SIGVTALRM,
|
||||
];
|
||||
|
||||
pub fn kill_init(procfs: &Path, chroot: &Path) -> Result<(), Error> {
|
||||
if chroot.join("proc/1").exists() {
|
||||
let ns_id = procfs::process::Process::new_with_root(chroot.join("proc/1"))
|
||||
.with_ctx(|_| (ErrorKind::Filesystem, "open subcontainer procfs"))?
|
||||
.namespaces()
|
||||
.with_ctx(|_| (ErrorKind::Filesystem, "read subcontainer pid 1 ns"))?
|
||||
.0
|
||||
.get(OsStr::new("pid"))
|
||||
.or_not_found("pid namespace")?
|
||||
.identifier;
|
||||
for proc in procfs::process::all_processes_with_root(procfs)
|
||||
.with_ctx(|_| (ErrorKind::Filesystem, "open procfs"))?
|
||||
{
|
||||
let proc = proc.with_ctx(|_| (ErrorKind::Filesystem, "read single process details"))?;
|
||||
let pid = proc.pid();
|
||||
if proc
|
||||
.namespaces()
|
||||
.with_ctx(|_| (ErrorKind::Filesystem, lazy_format!("read pid {} ns", pid)))?
|
||||
.0
|
||||
.get(OsStr::new("pid"))
|
||||
.map_or(false, |ns| ns.identifier == ns_id)
|
||||
{
|
||||
let pids = proc.read::<NSPid>("status").with_ctx(|_| {
|
||||
(
|
||||
ErrorKind::Filesystem,
|
||||
lazy_format!("read pid {} NSpid", pid),
|
||||
)
|
||||
})?;
|
||||
if pids.0.len() == 2 && pids.0[1] == 1 {
|
||||
nix::sys::signal::kill(Pid::from_raw(pid), nix::sys::signal::SIGKILL)
|
||||
.with_ctx(|_| {
|
||||
(
|
||||
ErrorKind::Filesystem,
|
||||
lazy_format!(
|
||||
"kill pid {} (determined to be pid 1 in subcontainer)",
|
||||
pid
|
||||
),
|
||||
)
|
||||
})?;
|
||||
}
|
||||
}
|
||||
}
|
||||
nix::mount::umount(&chroot.join("proc"))
|
||||
.with_ctx(|_| (ErrorKind::Filesystem, "unmounting subcontainer procfs"))?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
struct NSPid(Vec<i32>);
|
||||
impl procfs::FromBufRead for NSPid {
|
||||
fn from_buf_read<R: std::io::BufRead>(r: R) -> procfs::ProcResult<Self> {
|
||||
@@ -98,21 +146,27 @@ impl ExecParams {
|
||||
if let Some(uid) = user.as_deref().and_then(|u| u.parse::<u32>().ok()) {
|
||||
cmd.uid(uid);
|
||||
} else if let Some(user) = user {
|
||||
let (uid, gid) = std::fs::read_to_string("/etc/passwd")
|
||||
.with_ctx(|_| (ErrorKind::Filesystem, "read /etc/passwd"))?
|
||||
.lines()
|
||||
.find_map(|l| {
|
||||
let mut split = l.trim().split(":");
|
||||
if user != split.next()? {
|
||||
return None;
|
||||
}
|
||||
split.next(); // throw away x
|
||||
Some((split.next()?.parse().ok()?, split.next()?.parse().ok()?))
|
||||
// uid gid
|
||||
})
|
||||
.or_not_found(lazy_format!("{user} in /etc/passwd"))?;
|
||||
cmd.uid(uid);
|
||||
cmd.gid(gid);
|
||||
let passwd = std::fs::read_to_string("/etc/passwd")
|
||||
.with_ctx(|_| (ErrorKind::Filesystem, "read /etc/passwd"));
|
||||
if passwd.is_err() && user == "root" {
|
||||
cmd.uid(0);
|
||||
cmd.gid(0);
|
||||
} else {
|
||||
let (uid, gid) = passwd?
|
||||
.lines()
|
||||
.find_map(|l| {
|
||||
let mut split = l.trim().split(":");
|
||||
if user != split.next()? {
|
||||
return None;
|
||||
}
|
||||
split.next(); // throw away x
|
||||
Some((split.next()?.parse().ok()?, split.next()?.parse().ok()?))
|
||||
// uid gid
|
||||
})
|
||||
.or_not_found(lazy_format!("{user} in /etc/passwd"))?;
|
||||
cmd.uid(uid);
|
||||
cmd.gid(gid);
|
||||
}
|
||||
};
|
||||
if let Some(workdir) = workdir {
|
||||
cmd.current_dir(workdir);
|
||||
@@ -134,51 +188,7 @@ pub fn launch(
|
||||
command,
|
||||
}: ExecParams,
|
||||
) -> Result<(), Error> {
|
||||
if chroot.join("proc/1").exists() {
|
||||
let ns_id = procfs::process::Process::new_with_root(chroot.join("proc/1"))
|
||||
.with_ctx(|_| (ErrorKind::Filesystem, "open subcontainer procfs"))?
|
||||
.namespaces()
|
||||
.with_ctx(|_| (ErrorKind::Filesystem, "read subcontainer pid 1 ns"))?
|
||||
.0
|
||||
.get(OsStr::new("pid"))
|
||||
.or_not_found("pid namespace")?
|
||||
.identifier;
|
||||
for proc in
|
||||
procfs::process::all_processes().with_ctx(|_| (ErrorKind::Filesystem, "open procfs"))?
|
||||
{
|
||||
let proc = proc.with_ctx(|_| (ErrorKind::Filesystem, "read single process details"))?;
|
||||
let pid = proc.pid();
|
||||
if proc
|
||||
.namespaces()
|
||||
.with_ctx(|_| (ErrorKind::Filesystem, lazy_format!("read pid {} ns", pid)))?
|
||||
.0
|
||||
.get(OsStr::new("pid"))
|
||||
.map_or(false, |ns| ns.identifier == ns_id)
|
||||
{
|
||||
let pids = proc.read::<NSPid>("status").with_ctx(|_| {
|
||||
(
|
||||
ErrorKind::Filesystem,
|
||||
lazy_format!("read pid {} NSpid", pid),
|
||||
)
|
||||
})?;
|
||||
if pids.0.len() == 2 && pids.0[1] == 1 {
|
||||
nix::sys::signal::kill(Pid::from_raw(pid), nix::sys::signal::SIGKILL)
|
||||
.with_ctx(|_| {
|
||||
(
|
||||
ErrorKind::Filesystem,
|
||||
lazy_format!(
|
||||
"kill pid {} (determined to be pid 1 in subcontainer)",
|
||||
pid
|
||||
),
|
||||
)
|
||||
})?;
|
||||
}
|
||||
}
|
||||
}
|
||||
nix::mount::umount(&chroot.join("proc"))
|
||||
.with_ctx(|_| (ErrorKind::Filesystem, "unmounting subcontainer procfs"))?;
|
||||
}
|
||||
|
||||
kill_init(Path::new("/proc"), &chroot)?;
|
||||
if (std::io::stdin().is_terminal()
|
||||
&& std::io::stdout().is_terminal()
|
||||
&& std::io::stderr().is_terminal())
|
||||
|
||||
@@ -117,8 +117,11 @@ impl ServiceRef {
|
||||
pub async fn uninstall(
|
||||
self,
|
||||
target_version: Option<models::VersionString>,
|
||||
soft: bool,
|
||||
force: bool,
|
||||
) -> Result<(), Error> {
|
||||
self.seed
|
||||
let uninit_res = self
|
||||
.seed
|
||||
.persistent_container
|
||||
.execute::<NoOutput>(
|
||||
Guid::new(),
|
||||
@@ -126,7 +129,12 @@ impl ServiceRef {
|
||||
to_value(&target_version)?,
|
||||
None,
|
||||
) // TODO timeout
|
||||
.await?;
|
||||
.await;
|
||||
if force {
|
||||
uninit_res.log_err();
|
||||
} else {
|
||||
uninit_res?;
|
||||
}
|
||||
let id = self.seed.persistent_container.s9pk.as_manifest().id.clone();
|
||||
let ctx = self.seed.ctx.clone();
|
||||
self.shutdown().await?;
|
||||
@@ -166,24 +174,26 @@ impl ServiceRef {
|
||||
.await?
|
||||
{
|
||||
let state = pde.state_info.expect_removing()?;
|
||||
for volume_id in &state.manifest.volumes {
|
||||
let path = data_dir(DATA_DIR, &state.manifest.id, volume_id);
|
||||
if tokio::fs::metadata(&path).await.is_ok() {
|
||||
tokio::fs::remove_dir_all(&path).await?;
|
||||
if !soft {
|
||||
for volume_id in &state.manifest.volumes {
|
||||
let path = data_dir(DATA_DIR, &state.manifest.id, volume_id);
|
||||
if tokio::fs::metadata(&path).await.is_ok() {
|
||||
tokio::fs::remove_dir_all(&path).await?;
|
||||
}
|
||||
}
|
||||
let logs_dir = Path::new(PACKAGE_DATA)
|
||||
.join("logs")
|
||||
.join(&state.manifest.id);
|
||||
if tokio::fs::metadata(&logs_dir).await.is_ok() {
|
||||
tokio::fs::remove_dir_all(&logs_dir).await?;
|
||||
}
|
||||
let archive_path = Path::new(PACKAGE_DATA)
|
||||
.join("archive")
|
||||
.join("installed")
|
||||
.join(&state.manifest.id);
|
||||
if tokio::fs::metadata(&archive_path).await.is_ok() {
|
||||
tokio::fs::remove_file(&archive_path).await?;
|
||||
}
|
||||
}
|
||||
let logs_dir = Path::new(PACKAGE_DATA)
|
||||
.join("logs")
|
||||
.join(&state.manifest.id);
|
||||
if tokio::fs::metadata(&logs_dir).await.is_ok() {
|
||||
tokio::fs::remove_dir_all(&logs_dir).await?;
|
||||
}
|
||||
let archive_path = Path::new(PACKAGE_DATA)
|
||||
.join("archive")
|
||||
.join("installed")
|
||||
.join(&state.manifest.id);
|
||||
if tokio::fs::metadata(&archive_path).await.is_ok() {
|
||||
tokio::fs::remove_file(&archive_path).await?;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -397,7 +407,7 @@ impl Service {
|
||||
tracing::debug!("{e:?}")
|
||||
})
|
||||
{
|
||||
match service.uninstall(None).await {
|
||||
match service.uninstall(None, false, false).await {
|
||||
Err(e) => {
|
||||
tracing::error!("Error uninstalling service: {e}");
|
||||
tracing::debug!("{e:?}")
|
||||
|
||||
@@ -286,7 +286,7 @@ impl ServiceMap {
|
||||
.version
|
||||
.clone();
|
||||
service
|
||||
.uninstall(Some(s9pk.as_manifest().version.clone()))
|
||||
.uninstall(Some(s9pk.as_manifest().version.clone()), false, false)
|
||||
.await?;
|
||||
progress.complete();
|
||||
Some(version)
|
||||
@@ -321,12 +321,18 @@ impl ServiceMap {
|
||||
|
||||
/// This is ran during the cleanup, so when we are uninstalling the service
|
||||
#[instrument(skip_all)]
|
||||
pub async fn uninstall(&self, ctx: &RpcContext, id: &PackageId) -> Result<(), Error> {
|
||||
pub async fn uninstall(
|
||||
&self,
|
||||
ctx: &RpcContext,
|
||||
id: &PackageId,
|
||||
soft: bool,
|
||||
force: bool,
|
||||
) -> Result<(), Error> {
|
||||
let mut guard = self.get_mut(id).await;
|
||||
if let Some(service) = guard.take() {
|
||||
ServiceRefReloadGuard::new(ctx.clone(), id.clone(), "Uninstall")
|
||||
.handle_last(async move {
|
||||
let res = service.uninstall(None).await;
|
||||
let res = service.uninstall(None, soft, force).await;
|
||||
drop(guard);
|
||||
res
|
||||
})
|
||||
|
||||
@@ -99,8 +99,8 @@ pub fn ssh<C: Context>() -> ParentHandler<C> {
|
||||
.with_call_remote::<CliContext>(),
|
||||
)
|
||||
.subcommand(
|
||||
"delete",
|
||||
from_fn_async(delete)
|
||||
"remove",
|
||||
from_fn_async(remove)
|
||||
.no_display()
|
||||
.with_about("Remove ssh key")
|
||||
.with_call_remote::<CliContext>(),
|
||||
@@ -159,7 +159,7 @@ pub struct DeleteParams {
|
||||
}
|
||||
|
||||
#[instrument(skip_all)]
|
||||
pub async fn delete(
|
||||
pub async fn remove(
|
||||
ctx: RpcContext,
|
||||
DeleteParams { fingerprint }: DeleteParams,
|
||||
) -> Result<(), Error> {
|
||||
|
||||
@@ -7,10 +7,7 @@ use clap::Parser;
|
||||
use color_eyre::eyre::eyre;
|
||||
use futures::FutureExt;
|
||||
use imbl::vector;
|
||||
use mail_send::mail_builder::{self, MessageBuilder};
|
||||
use mail_send::SmtpClientBuilder;
|
||||
use rpc_toolkit::{from_fn_async, Context, Empty, HandlerExt, ParentHandler};
|
||||
use rustls::crypto::CryptoProvider;
|
||||
use rustls::RootCertStore;
|
||||
use rustls_pki_types::CertificateDer;
|
||||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||
@@ -906,64 +903,74 @@ pub async fn test_smtp(
|
||||
password,
|
||||
}: TestSmtpParams,
|
||||
) -> Result<(), Error> {
|
||||
use rustls_pki_types::pem::PemObject;
|
||||
#[cfg(feature = "mail-send")]
|
||||
{
|
||||
use mail_send::mail_builder::{self, MessageBuilder};
|
||||
use mail_send::SmtpClientBuilder;
|
||||
use rustls_pki_types::pem::PemObject;
|
||||
|
||||
let Some(pass_val) = password else {
|
||||
return Err(Error::new(
|
||||
eyre!("mail-send requires a password"),
|
||||
ErrorKind::InvalidRequest,
|
||||
));
|
||||
};
|
||||
let Some(pass_val) = password else {
|
||||
return Err(Error::new(
|
||||
eyre!("mail-send requires a password"),
|
||||
ErrorKind::InvalidRequest,
|
||||
));
|
||||
};
|
||||
|
||||
let mut root_cert_store = RootCertStore::empty();
|
||||
let pem = tokio::fs::read("/etc/ssl/certs/ca-certificates.crt").await?;
|
||||
for cert in CertificateDer::pem_slice_iter(&pem) {
|
||||
root_cert_store.add_parsable_certificates([cert.with_kind(ErrorKind::OpenSsl)?]);
|
||||
}
|
||||
|
||||
let cfg = Arc::new(
|
||||
rustls::ClientConfig::builder_with_provider(Arc::new(
|
||||
rustls::crypto::ring::default_provider(),
|
||||
))
|
||||
.with_safe_default_protocol_versions()?
|
||||
.with_root_certificates(root_cert_store)
|
||||
.with_no_client_auth(),
|
||||
);
|
||||
let client = SmtpClientBuilder::new_with_tls_config(server, port, cfg)
|
||||
.implicit_tls(false)
|
||||
.credentials((login.split("@").next().unwrap().to_owned(), pass_val));
|
||||
|
||||
fn parse_address<'a>(addr: &'a str) -> mail_builder::headers::address::Address<'a> {
|
||||
if addr.find("<").map_or(false, |start| {
|
||||
addr.find(">").map_or(false, |end| start < end)
|
||||
}) {
|
||||
addr.split_once("<")
|
||||
.map(|(name, addr)| (name.trim(), addr.strip_suffix(">").unwrap_or(addr)))
|
||||
.unwrap()
|
||||
.into()
|
||||
} else {
|
||||
addr.into()
|
||||
let mut root_cert_store = RootCertStore::empty();
|
||||
let pem = tokio::fs::read("/etc/ssl/certs/ca-certificates.crt").await?;
|
||||
for cert in CertificateDer::pem_slice_iter(&pem) {
|
||||
root_cert_store.add_parsable_certificates([cert.with_kind(ErrorKind::OpenSsl)?]);
|
||||
}
|
||||
}
|
||||
|
||||
let message = MessageBuilder::new()
|
||||
.from(parse_address(&from))
|
||||
.to(parse_address(&to))
|
||||
.subject("StartOS Test Email")
|
||||
.text_body("This is a test email sent from your StartOS Server");
|
||||
client
|
||||
.connect()
|
||||
.await
|
||||
.map_err(|e| {
|
||||
Error::new(
|
||||
eyre!("mail-send connection error: {:?}", e),
|
||||
ErrorKind::Unknown,
|
||||
)
|
||||
})?
|
||||
.send(message)
|
||||
.await
|
||||
.map_err(|e| Error::new(eyre!("mail-send send error: {:?}", e), ErrorKind::Unknown))?;
|
||||
Ok(())
|
||||
let cfg = Arc::new(
|
||||
rustls::ClientConfig::builder_with_provider(Arc::new(
|
||||
rustls::crypto::ring::default_provider(),
|
||||
))
|
||||
.with_safe_default_protocol_versions()?
|
||||
.with_root_certificates(root_cert_store)
|
||||
.with_no_client_auth(),
|
||||
);
|
||||
let client = SmtpClientBuilder::new_with_tls_config(server, port, cfg)
|
||||
.implicit_tls(false)
|
||||
.credentials((login.split("@").next().unwrap().to_owned(), pass_val));
|
||||
|
||||
fn parse_address<'a>(addr: &'a str) -> mail_builder::headers::address::Address<'a> {
|
||||
if addr.find("<").map_or(false, |start| {
|
||||
addr.find(">").map_or(false, |end| start < end)
|
||||
}) {
|
||||
addr.split_once("<")
|
||||
.map(|(name, addr)| (name.trim(), addr.strip_suffix(">").unwrap_or(addr)))
|
||||
.unwrap()
|
||||
.into()
|
||||
} else {
|
||||
addr.into()
|
||||
}
|
||||
}
|
||||
|
||||
let message = MessageBuilder::new()
|
||||
.from(parse_address(&from))
|
||||
.to(parse_address(&to))
|
||||
.subject("StartOS Test Email")
|
||||
.text_body("This is a test email sent from your StartOS Server");
|
||||
client
|
||||
.connect()
|
||||
.await
|
||||
.map_err(|e| {
|
||||
Error::new(
|
||||
eyre!("mail-send connection error: {:?}", e),
|
||||
ErrorKind::Unknown,
|
||||
)
|
||||
})?
|
||||
.send(message)
|
||||
.await
|
||||
.map_err(|e| Error::new(eyre!("mail-send send error: {:?}", e), ErrorKind::Unknown))?;
|
||||
Ok(())
|
||||
}
|
||||
#[cfg(not(feature = "mail-send"))]
|
||||
Err(Error::new(
|
||||
eyre!("test-smtp requires mail-send feature to be enabled"),
|
||||
ErrorKind::InvalidRequest,
|
||||
))
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
|
||||
@@ -61,30 +61,31 @@ impl StartOSLogger {
|
||||
use tracing_subscriber::prelude::*;
|
||||
use tracing_subscriber::{fmt, EnvFilter};
|
||||
|
||||
let filter_layer = EnvFilter::builder()
|
||||
.with_default_directive(
|
||||
format!("{}=info", std::module_path!().split("::").next().unwrap())
|
||||
.parse()
|
||||
.unwrap(),
|
||||
)
|
||||
.from_env_lossy();
|
||||
#[cfg(feature = "unstable")]
|
||||
let filter_layer = filter_layer
|
||||
.add_directive("tokio=trace".parse().unwrap())
|
||||
.add_directive("runtime=trace".parse().unwrap());
|
||||
let filter_layer = || {
|
||||
EnvFilter::builder()
|
||||
.with_default_directive(
|
||||
format!("{}=info", std::module_path!().split("::").next().unwrap())
|
||||
.parse()
|
||||
.unwrap(),
|
||||
)
|
||||
.from_env_lossy()
|
||||
};
|
||||
|
||||
let fmt_layer = fmt::layer()
|
||||
.with_writer(logfile)
|
||||
.with_line_number(true)
|
||||
.with_file(true)
|
||||
.with_target(true);
|
||||
.with_target(true)
|
||||
.with_filter(filter_layer());
|
||||
|
||||
let sub = tracing_subscriber::registry()
|
||||
.with(filter_layer)
|
||||
.with(fmt_layer)
|
||||
.with(ErrorLayer::default());
|
||||
let sub = tracing_subscriber::registry();
|
||||
|
||||
#[cfg(feature = "unstable")]
|
||||
let sub = sub.with(console_subscriber::spawn());
|
||||
#[cfg(not(feature = "unstable"))]
|
||||
let sub = sub.with(filter_layer());
|
||||
|
||||
let sub = sub.with(fmt_layer).with(ErrorLayer::default());
|
||||
|
||||
sub
|
||||
}
|
||||
|
||||
@@ -648,7 +648,7 @@ impl<'a, T> From<&'a T> for MaybeOwned<'a, T> {
|
||||
pub fn new_guid() -> InternedString {
|
||||
use rand::RngCore;
|
||||
let mut buf = [0; 20];
|
||||
rand::thread_rng().fill_bytes(&mut buf);
|
||||
rand::rng().fill_bytes(&mut buf);
|
||||
InternedString::intern(base32::encode(
|
||||
base32::Alphabet::Rfc4648 { padding: false },
|
||||
&buf,
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
use std::collections::VecDeque;
|
||||
use std::pin::Pin;
|
||||
use std::sync::Arc;
|
||||
use std::sync::atomic::AtomicUsize;
|
||||
use std::sync::{Arc, Weak};
|
||||
use std::task::{Poll, Waker};
|
||||
|
||||
use futures::stream::BoxStream;
|
||||
use futures::Stream;
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
pub struct SyncMutex<T>(std::sync::Mutex<T>);
|
||||
impl<T> SyncMutex<T> {
|
||||
@@ -160,3 +165,149 @@ impl<T: Clone> futures::Stream for Watch<T> {
|
||||
(1, None)
|
||||
}
|
||||
}
|
||||
|
||||
struct DupState<T, Upstream = BoxStream<'static, T>>
|
||||
where
|
||||
T: Clone,
|
||||
Upstream: Stream<Item = T> + Unpin,
|
||||
{
|
||||
buffer: VecDeque<T>,
|
||||
upstream: Upstream,
|
||||
pos: usize,
|
||||
pos_refs: Vec<Weak<AtomicUsize>>,
|
||||
wakers: Vec<Waker>,
|
||||
}
|
||||
impl<T: Clone, Upstream: Stream<Item = T> + Unpin> DupState<T, Upstream> {
|
||||
fn poll_next(&mut self, cx: &mut std::task::Context<'_>) -> Poll<Option<T>> {
|
||||
use futures::stream::StreamExt;
|
||||
let Some(next) = futures::ready!(self.upstream.poll_next_unpin(cx)) else {
|
||||
return Poll::Ready(None);
|
||||
};
|
||||
self.pos += 1;
|
||||
self.buffer.push_back(next.clone());
|
||||
for waker in self.wakers.drain(..) {
|
||||
if !waker.will_wake(cx.waker()) {
|
||||
waker.wake();
|
||||
}
|
||||
}
|
||||
|
||||
Poll::Ready(Some(next))
|
||||
}
|
||||
}
|
||||
|
||||
pub struct DupStream<T, Upstream = BoxStream<'static, T>>
|
||||
where
|
||||
T: Clone,
|
||||
Upstream: Stream<Item = T> + Unpin,
|
||||
{
|
||||
state: Arc<SyncMutex<DupState<T, Upstream>>>,
|
||||
pos: Arc<AtomicUsize>,
|
||||
}
|
||||
impl<T: Clone, Upstream: Stream<Item = T> + Unpin> DupStream<T, Upstream> {
|
||||
pub fn new(upstream: Upstream) -> Self {
|
||||
let pos = Arc::new(AtomicUsize::new(0));
|
||||
Self {
|
||||
state: Arc::new(SyncMutex::new(DupState {
|
||||
buffer: VecDeque::new(),
|
||||
upstream,
|
||||
pos: 0,
|
||||
pos_refs: vec![Arc::downgrade(&pos)],
|
||||
wakers: Vec::new(),
|
||||
})),
|
||||
pos,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Clone, Upstream: Stream<Item = T> + Unpin> Clone for DupStream<T, Upstream> {
|
||||
fn clone(&self) -> Self {
|
||||
let pos = self.state.mutate(|state| {
|
||||
let pos = Arc::new(AtomicUsize::new(
|
||||
self.pos.load(std::sync::atomic::Ordering::Relaxed),
|
||||
));
|
||||
state.pos_refs.push(Arc::downgrade(&pos));
|
||||
state.pos_refs.retain(|ptr| ptr.strong_count() > 0);
|
||||
pos
|
||||
});
|
||||
Self {
|
||||
state: self.state.clone(),
|
||||
pos,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Clone, Upstream: Stream<Item = T> + Unpin> Stream for DupStream<T, Upstream> {
|
||||
type Item = T;
|
||||
fn poll_next(
|
||||
self: Pin<&mut Self>,
|
||||
cx: &mut std::task::Context<'_>,
|
||||
) -> Poll<Option<Self::Item>> {
|
||||
self.state.mutate(|state| {
|
||||
let pos = self.pos.load(std::sync::atomic::Ordering::Relaxed);
|
||||
if pos < state.pos {
|
||||
self.pos.fetch_add(1, std::sync::atomic::Ordering::Relaxed);
|
||||
if state
|
||||
.pos_refs
|
||||
.iter()
|
||||
.filter_map(|ptr| ptr.upgrade())
|
||||
.all(|ptr| ptr.load(std::sync::atomic::Ordering::Relaxed) > pos)
|
||||
{
|
||||
while let Some(next) = state.buffer.pop_front() {
|
||||
if state.buffer.len() + 1 == state.pos - pos {
|
||||
return Poll::Ready(Some(next));
|
||||
}
|
||||
}
|
||||
Poll::Ready(None)
|
||||
} else {
|
||||
Poll::Ready(
|
||||
state
|
||||
.buffer
|
||||
.get(state.buffer.len() + pos - state.pos)
|
||||
.cloned(),
|
||||
)
|
||||
}
|
||||
} else {
|
||||
let res = state.poll_next(cx);
|
||||
if res.is_ready() {
|
||||
self.pos
|
||||
.store(state.pos, std::sync::atomic::Ordering::Relaxed);
|
||||
} else {
|
||||
let waker = cx.waker();
|
||||
if state.wakers.iter().all(|w| !w.will_wake(waker)) {
|
||||
state.wakers.push(waker.clone());
|
||||
}
|
||||
}
|
||||
res
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_dup_stream() {
|
||||
use std::time::Duration;
|
||||
|
||||
use futures::StreamExt;
|
||||
|
||||
let stream = async_stream::stream! {
|
||||
for i in 0..100 {
|
||||
tokio::time::sleep(Duration::from_nanos(rand::random_range(0..=10000000))).await;
|
||||
yield i;
|
||||
}
|
||||
}
|
||||
.boxed();
|
||||
let n = rand::random_range(3..10);
|
||||
let mut tasks = Vec::with_capacity(n);
|
||||
for mut dup_stream in std::iter::repeat_n(DupStream::new(stream), n) {
|
||||
tasks.push(tokio::spawn(async move {
|
||||
let mut ctr = 0;
|
||||
while let Some(i) = dup_stream.next().await {
|
||||
assert_eq!(ctr, i);
|
||||
ctr += 1;
|
||||
tokio::time::sleep(Duration::from_nanos(rand::random_range(0..=10000000))).await;
|
||||
}
|
||||
assert_eq!(ctr, 100);
|
||||
}));
|
||||
}
|
||||
futures::future::try_join_all(tasks).await.unwrap();
|
||||
}
|
||||
|
||||
@@ -33,8 +33,10 @@ mod v0_3_6_alpha_10;
|
||||
mod v0_3_6_alpha_11;
|
||||
mod v0_3_6_alpha_12;
|
||||
mod v0_3_6_alpha_13;
|
||||
mod v0_3_6_alpha_14;
|
||||
mod v0_3_6_alpha_15;
|
||||
|
||||
pub type Current = v0_3_6_alpha_13::Version; // VERSION_BUMP
|
||||
pub type Current = v0_3_6_alpha_15::Version; // VERSION_BUMP
|
||||
|
||||
impl Current {
|
||||
#[instrument(skip(self, db))]
|
||||
@@ -129,7 +131,9 @@ enum Version {
|
||||
V0_3_6_alpha_10(Wrapper<v0_3_6_alpha_10::Version>),
|
||||
V0_3_6_alpha_11(Wrapper<v0_3_6_alpha_11::Version>),
|
||||
V0_3_6_alpha_12(Wrapper<v0_3_6_alpha_12::Version>),
|
||||
V0_3_6_alpha_13(Wrapper<v0_3_6_alpha_13::Version>), // VERSION_BUMP
|
||||
V0_3_6_alpha_13(Wrapper<v0_3_6_alpha_13::Version>),
|
||||
V0_3_6_alpha_14(Wrapper<v0_3_6_alpha_14::Version>),
|
||||
V0_3_6_alpha_15(Wrapper<v0_3_6_alpha_15::Version>), // VERSION_BUMP
|
||||
Other(exver::Version),
|
||||
}
|
||||
|
||||
@@ -166,7 +170,9 @@ impl Version {
|
||||
Self::V0_3_6_alpha_10(v) => DynVersion(Box::new(v.0)),
|
||||
Self::V0_3_6_alpha_11(v) => DynVersion(Box::new(v.0)),
|
||||
Self::V0_3_6_alpha_12(v) => DynVersion(Box::new(v.0)),
|
||||
Self::V0_3_6_alpha_13(v) => DynVersion(Box::new(v.0)), // VERSION_BUMP
|
||||
Self::V0_3_6_alpha_13(v) => DynVersion(Box::new(v.0)),
|
||||
Self::V0_3_6_alpha_14(v) => DynVersion(Box::new(v.0)),
|
||||
Self::V0_3_6_alpha_15(v) => DynVersion(Box::new(v.0)), // VERSION_BUMP
|
||||
Self::Other(v) => {
|
||||
return Err(Error::new(
|
||||
eyre!("unknown version {v}"),
|
||||
@@ -195,7 +201,9 @@ impl Version {
|
||||
Version::V0_3_6_alpha_10(Wrapper(x)) => x.semver(),
|
||||
Version::V0_3_6_alpha_11(Wrapper(x)) => x.semver(),
|
||||
Version::V0_3_6_alpha_12(Wrapper(x)) => x.semver(),
|
||||
Version::V0_3_6_alpha_13(Wrapper(x)) => x.semver(), // VERSION_BUMP
|
||||
Version::V0_3_6_alpha_13(Wrapper(x)) => x.semver(),
|
||||
Version::V0_3_6_alpha_14(Wrapper(x)) => x.semver(),
|
||||
Version::V0_3_6_alpha_15(Wrapper(x)) => x.semver(), // VERSION_BUMP
|
||||
Version::Other(x) => x.clone(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -464,9 +464,9 @@ async fn previous_account_info(pg: &sqlx::Pool<sqlx::Postgres>) -> Result<Accoun
|
||||
.as_bytes(),
|
||||
)
|
||||
.with_ctx(|_| (ErrorKind::Database, "X509::from_pem"))?,
|
||||
compat_s9pk_key: SigningKey::generate(&mut rand::thread_rng()),
|
||||
compat_s9pk_key: SigningKey::generate(&mut ssh_key::rand_core::OsRng::default()),
|
||||
ssh_key: ssh_key::PrivateKey::random(
|
||||
&mut rand::thread_rng(),
|
||||
&mut ssh_key::rand_core::OsRng::default(),
|
||||
ssh_key::Algorithm::Ed25519,
|
||||
)
|
||||
.with_ctx(|_| (ErrorKind::Database, "X509::ssh_key::PrivateKey::random"))?,
|
||||
|
||||
39
core/startos/src/version/v0_3_6_alpha_14.rs
Normal file
39
core/startos/src/version/v0_3_6_alpha_14.rs
Normal file
@@ -0,0 +1,39 @@
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
use exver::{PreReleaseSegment, VersionRange};
|
||||
use imbl_value::json;
|
||||
|
||||
use super::v0_3_5::V0_3_0_COMPAT;
|
||||
use super::{v0_3_6_alpha_13, VersionT};
|
||||
use crate::prelude::*;
|
||||
|
||||
lazy_static::lazy_static! {
|
||||
static ref V0_3_6_alpha_14: exver::Version = exver::Version::new(
|
||||
[0, 3, 6],
|
||||
[PreReleaseSegment::String("alpha".into()), 14.into()]
|
||||
);
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, Default)]
|
||||
pub struct Version;
|
||||
|
||||
impl VersionT for Version {
|
||||
type Previous = v0_3_6_alpha_13::Version;
|
||||
type PreUpRes = ();
|
||||
|
||||
async fn pre_up(self) -> Result<Self::PreUpRes, Error> {
|
||||
Ok(())
|
||||
}
|
||||
fn semver(self) -> exver::Version {
|
||||
V0_3_6_alpha_14.clone()
|
||||
}
|
||||
fn compat(self) -> &'static VersionRange {
|
||||
&V0_3_0_COMPAT
|
||||
}
|
||||
fn up(self, db: &mut Value, _: Self::PreUpRes) -> Result<(), Error> {
|
||||
Ok(())
|
||||
}
|
||||
fn down(self, _db: &mut Value) -> Result<(), Error> {
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
39
core/startos/src/version/v0_3_6_alpha_15.rs
Normal file
39
core/startos/src/version/v0_3_6_alpha_15.rs
Normal file
@@ -0,0 +1,39 @@
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
use exver::{PreReleaseSegment, VersionRange};
|
||||
use imbl_value::json;
|
||||
|
||||
use super::v0_3_5::V0_3_0_COMPAT;
|
||||
use super::{v0_3_6_alpha_14, VersionT};
|
||||
use crate::prelude::*;
|
||||
|
||||
lazy_static::lazy_static! {
|
||||
static ref V0_3_6_alpha_15: exver::Version = exver::Version::new(
|
||||
[0, 3, 6],
|
||||
[PreReleaseSegment::String("alpha".into()), 15.into()]
|
||||
);
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, Default)]
|
||||
pub struct Version;
|
||||
|
||||
impl VersionT for Version {
|
||||
type Previous = v0_3_6_alpha_14::Version;
|
||||
type PreUpRes = ();
|
||||
|
||||
async fn pre_up(self) -> Result<Self::PreUpRes, Error> {
|
||||
Ok(())
|
||||
}
|
||||
fn semver(self) -> exver::Version {
|
||||
V0_3_6_alpha_15.clone()
|
||||
}
|
||||
fn compat(self) -> &'static VersionRange {
|
||||
&V0_3_0_COMPAT
|
||||
}
|
||||
fn up(self, db: &mut Value, _: Self::PreUpRes) -> Result<(), Error> {
|
||||
Ok(())
|
||||
}
|
||||
fn down(self, _db: &mut Value) -> Result<(), Error> {
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
@@ -131,6 +131,8 @@ export type Effects = {
|
||||
}): Promise<Host | null>
|
||||
/** Returns the IP address of the container */
|
||||
getContainerIp(): Promise<string>
|
||||
/** Returns the IP address of StartOS */
|
||||
getOsIp(): Promise<string>
|
||||
// interface
|
||||
/** Creates an interface bound to a specific host and port to show to the user */
|
||||
exportServiceInterface(options: ExportServiceInterfaceParams): Promise<null>
|
||||
|
||||
@@ -13,7 +13,7 @@ export type Run<
|
||||
| InputSpec<Record<string, never>, never>,
|
||||
> = (options: {
|
||||
effects: T.Effects
|
||||
input: ExtractInputSpecType<A> & Record<string, any>
|
||||
input: ExtractInputSpecType<A>
|
||||
}) => Promise<(T.ActionResult & { version: "1" }) | null | void | undefined>
|
||||
export type GetInput<
|
||||
A extends
|
||||
@@ -22,12 +22,7 @@ export type GetInput<
|
||||
| InputSpec<Record<string, any>, never>,
|
||||
> = (options: {
|
||||
effects: T.Effects
|
||||
}) => Promise<
|
||||
| null
|
||||
| void
|
||||
| undefined
|
||||
| (ExtractPartialInputSpecType<A> & Record<string, any>)
|
||||
>
|
||||
}) => Promise<null | void | undefined | ExtractPartialInputSpecType<A>>
|
||||
|
||||
export type MaybeFn<T> = T | ((options: { effects: T.Effects }) => Promise<T>)
|
||||
function callMaybeFn<T>(
|
||||
@@ -63,8 +58,8 @@ export class Action<
|
||||
readonly id: Id,
|
||||
private readonly metadataFn: MaybeFn<T.ActionMetadata>,
|
||||
private readonly inputSpec: InputSpecType,
|
||||
private readonly getInputFn: GetInput<ExtractInputSpecType<InputSpecType>>,
|
||||
private readonly runFn: Run<ExtractInputSpecType<InputSpecType>>,
|
||||
private readonly getInputFn: GetInput<InputSpecType>,
|
||||
private readonly runFn: Run<InputSpecType>,
|
||||
) {}
|
||||
static withInput<
|
||||
Id extends T.ActionId,
|
||||
@@ -77,8 +72,8 @@ export class Action<
|
||||
id: Id,
|
||||
metadata: MaybeFn<Omit<T.ActionMetadata, "hasInput">>,
|
||||
inputSpec: InputSpecType,
|
||||
getInput: GetInput<ExtractInputSpecType<InputSpecType>>,
|
||||
run: Run<ExtractInputSpecType<InputSpecType>>,
|
||||
getInput: GetInput<InputSpecType>,
|
||||
run: Run<InputSpecType>,
|
||||
): Action<Id, Store, InputSpecType> {
|
||||
return new Action(
|
||||
id,
|
||||
|
||||
@@ -45,8 +45,26 @@ ExtendedVersion
|
||||
return { flavor: flavor || null, upstream, downstream }
|
||||
}
|
||||
|
||||
EmVer
|
||||
= major:Digit "." minor:Digit "." patch:Digit ("." revision:Digit)? {
|
||||
EmverVersionRange
|
||||
= first:EmverVersionRangeAtom rest:(_ ((Or / And) _)? EmverVersionRangeAtom)*
|
||||
|
||||
EmverVersionRangeAtom
|
||||
= EmverParens
|
||||
/ EmverAnchor
|
||||
/ EmverNot
|
||||
/ Any
|
||||
/ None
|
||||
|
||||
EmverParens
|
||||
= "(" _ expr:EmverVersionRange _ ")" { return { type: "Parens", expr } }
|
||||
|
||||
EmverAnchor
|
||||
= operator:CmpOp? _ version:Emver { return { type: "Anchor", operator, version } }
|
||||
|
||||
EmverNot = "!" _ value:EmverVersionRangeAtom { return { type: "Not", value: value }}
|
||||
|
||||
Emver
|
||||
= major:Digit "." minor:Digit "." patch:Digit revision:( "." revision:Digit { return revision } )? {
|
||||
return {
|
||||
flavor: null,
|
||||
upstream: {
|
||||
|
||||
@@ -296,7 +296,7 @@ function peg$parse(input, options) {
|
||||
var peg$source = options.grammarSource;
|
||||
|
||||
// @ts-ignore
|
||||
var peg$startRuleFunctions = { VersionRange: peg$parseVersionRange, Or: peg$parseOr, And: peg$parseAnd, VersionRangeAtom: peg$parseVersionRangeAtom, Parens: peg$parseParens, Anchor: peg$parseAnchor, VersionSpec: peg$parseVersionSpec, Not: peg$parseNot, Any: peg$parseAny, None: peg$parseNone, CmpOp: peg$parseCmpOp, ExtendedVersion: peg$parseExtendedVersion, EmVer: peg$parseEmVer, Flavor: peg$parseFlavor, Lowercase: peg$parseLowercase, String: peg$parseString, Version: peg$parseVersion, PreRelease: peg$parsePreRelease, PreReleaseSegment: peg$parsePreReleaseSegment, VersionNumber: peg$parseVersionNumber, Digit: peg$parseDigit, _: peg$parse_ };
|
||||
var peg$startRuleFunctions = { VersionRange: peg$parseVersionRange, Or: peg$parseOr, And: peg$parseAnd, VersionRangeAtom: peg$parseVersionRangeAtom, Parens: peg$parseParens, Anchor: peg$parseAnchor, VersionSpec: peg$parseVersionSpec, Not: peg$parseNot, Any: peg$parseAny, None: peg$parseNone, CmpOp: peg$parseCmpOp, ExtendedVersion: peg$parseExtendedVersion, EmverVersionRange: peg$parseEmverVersionRange, EmverVersionRangeAtom: peg$parseEmverVersionRangeAtom, EmverParens: peg$parseEmverParens, EmverAnchor: peg$parseEmverAnchor, EmverNot: peg$parseEmverNot, Emver: peg$parseEmver, Flavor: peg$parseFlavor, Lowercase: peg$parseLowercase, String: peg$parseString, Version: peg$parseVersion, PreRelease: peg$parsePreRelease, PreReleaseSegment: peg$parsePreReleaseSegment, VersionNumber: peg$parseVersionNumber, Digit: peg$parseDigit, _: peg$parse_ };
|
||||
// @ts-ignore
|
||||
var peg$startRuleFunction = peg$parseVersionRange;
|
||||
|
||||
@@ -397,7 +397,19 @@ function peg$parse(input, options) {
|
||||
return { flavor: flavor || null, upstream, downstream }
|
||||
};// @ts-ignore
|
||||
|
||||
var peg$f15 = function(major, minor, patch) {
|
||||
var peg$f15 = function(expr) {// @ts-ignore
|
||||
return { type: "Parens", expr } };// @ts-ignore
|
||||
|
||||
var peg$f16 = function(operator, version) {// @ts-ignore
|
||||
return { type: "Anchor", operator, version } };// @ts-ignore
|
||||
|
||||
var peg$f17 = function(value) {// @ts-ignore
|
||||
return { type: "Not", value: value }};// @ts-ignore
|
||||
|
||||
var peg$f18 = function(major, minor, patch, revision) {// @ts-ignore
|
||||
return revision };// @ts-ignore
|
||||
|
||||
var peg$f19 = function(major, minor, patch, revision) {
|
||||
// @ts-ignore
|
||||
return {
|
||||
// @ts-ignore
|
||||
@@ -419,16 +431,16 @@ function peg$parse(input, options) {
|
||||
}
|
||||
};// @ts-ignore
|
||||
|
||||
var peg$f16 = function(flavor) {// @ts-ignore
|
||||
var peg$f20 = function(flavor) {// @ts-ignore
|
||||
return flavor };// @ts-ignore
|
||||
|
||||
var peg$f17 = function() {// @ts-ignore
|
||||
var peg$f21 = function() {// @ts-ignore
|
||||
return text() };// @ts-ignore
|
||||
|
||||
var peg$f18 = function() {// @ts-ignore
|
||||
var peg$f22 = function() {// @ts-ignore
|
||||
return text(); };// @ts-ignore
|
||||
|
||||
var peg$f19 = function(number, prerelease) {
|
||||
var peg$f23 = function(number, prerelease) {
|
||||
// @ts-ignore
|
||||
return {
|
||||
// @ts-ignore
|
||||
@@ -438,22 +450,22 @@ function peg$parse(input, options) {
|
||||
};
|
||||
};// @ts-ignore
|
||||
|
||||
var peg$f20 = function(first, rest) {
|
||||
var peg$f24 = function(first, rest) {
|
||||
// @ts-ignore
|
||||
return [first].concat(rest.map(r => r[1]));
|
||||
};// @ts-ignore
|
||||
|
||||
var peg$f21 = function(segment) {
|
||||
var peg$f25 = function(segment) {
|
||||
// @ts-ignore
|
||||
return segment;
|
||||
};// @ts-ignore
|
||||
|
||||
var peg$f22 = function(first, rest) {
|
||||
var peg$f26 = function(first, rest) {
|
||||
// @ts-ignore
|
||||
return [first].concat(rest.map(r => r[1]));
|
||||
};// @ts-ignore
|
||||
|
||||
var peg$f23 = function() {// @ts-ignore
|
||||
var peg$f27 = function() {// @ts-ignore
|
||||
return parseInt(text(), 10); };
|
||||
// @ts-ignore
|
||||
var peg$currPos = 0;
|
||||
@@ -1533,7 +1545,336 @@ peg$parseExtendedVersion() {
|
||||
|
||||
// @ts-ignore
|
||||
function // @ts-ignore
|
||||
peg$parseEmVer() {
|
||||
peg$parseEmverVersionRange() {
|
||||
// @ts-ignore
|
||||
var s0, s1, s2, s3, s4, s5, s6, s7;
|
||||
|
||||
// @ts-ignore
|
||||
s0 = peg$currPos;
|
||||
// @ts-ignore
|
||||
s1 = peg$parseEmverVersionRangeAtom();
|
||||
// @ts-ignore
|
||||
if (s1 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s2 = [];
|
||||
// @ts-ignore
|
||||
s3 = peg$currPos;
|
||||
// @ts-ignore
|
||||
s4 = peg$parse_();
|
||||
// @ts-ignore
|
||||
s5 = peg$currPos;
|
||||
// @ts-ignore
|
||||
s6 = peg$parseOr();
|
||||
// @ts-ignore
|
||||
if (s6 === peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s6 = peg$parseAnd();
|
||||
}
|
||||
// @ts-ignore
|
||||
if (s6 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s7 = peg$parse_();
|
||||
// @ts-ignore
|
||||
s6 = [s6, s7];
|
||||
// @ts-ignore
|
||||
s5 = s6;
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
peg$currPos = s5;
|
||||
// @ts-ignore
|
||||
s5 = peg$FAILED;
|
||||
}
|
||||
// @ts-ignore
|
||||
if (s5 === peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s5 = null;
|
||||
}
|
||||
// @ts-ignore
|
||||
s6 = peg$parseEmverVersionRangeAtom();
|
||||
// @ts-ignore
|
||||
if (s6 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s4 = [s4, s5, s6];
|
||||
// @ts-ignore
|
||||
s3 = s4;
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
peg$currPos = s3;
|
||||
// @ts-ignore
|
||||
s3 = peg$FAILED;
|
||||
}
|
||||
// @ts-ignore
|
||||
while (s3 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s2.push(s3);
|
||||
// @ts-ignore
|
||||
s3 = peg$currPos;
|
||||
// @ts-ignore
|
||||
s4 = peg$parse_();
|
||||
// @ts-ignore
|
||||
s5 = peg$currPos;
|
||||
// @ts-ignore
|
||||
s6 = peg$parseOr();
|
||||
// @ts-ignore
|
||||
if (s6 === peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s6 = peg$parseAnd();
|
||||
}
|
||||
// @ts-ignore
|
||||
if (s6 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s7 = peg$parse_();
|
||||
// @ts-ignore
|
||||
s6 = [s6, s7];
|
||||
// @ts-ignore
|
||||
s5 = s6;
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
peg$currPos = s5;
|
||||
// @ts-ignore
|
||||
s5 = peg$FAILED;
|
||||
}
|
||||
// @ts-ignore
|
||||
if (s5 === peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s5 = null;
|
||||
}
|
||||
// @ts-ignore
|
||||
s6 = peg$parseEmverVersionRangeAtom();
|
||||
// @ts-ignore
|
||||
if (s6 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s4 = [s4, s5, s6];
|
||||
// @ts-ignore
|
||||
s3 = s4;
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
peg$currPos = s3;
|
||||
// @ts-ignore
|
||||
s3 = peg$FAILED;
|
||||
}
|
||||
}
|
||||
// @ts-ignore
|
||||
s1 = [s1, s2];
|
||||
// @ts-ignore
|
||||
s0 = s1;
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
peg$currPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$FAILED;
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
return s0;
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
function // @ts-ignore
|
||||
peg$parseEmverVersionRangeAtom() {
|
||||
// @ts-ignore
|
||||
var s0;
|
||||
|
||||
// @ts-ignore
|
||||
s0 = peg$parseEmverParens();
|
||||
// @ts-ignore
|
||||
if (s0 === peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s0 = peg$parseEmverAnchor();
|
||||
// @ts-ignore
|
||||
if (s0 === peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s0 = peg$parseEmverNot();
|
||||
// @ts-ignore
|
||||
if (s0 === peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s0 = peg$parseAny();
|
||||
// @ts-ignore
|
||||
if (s0 === peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s0 = peg$parseNone();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
return s0;
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
function // @ts-ignore
|
||||
peg$parseEmverParens() {
|
||||
// @ts-ignore
|
||||
var s0, s1, s2, s3, s4, s5;
|
||||
|
||||
// @ts-ignore
|
||||
s0 = peg$currPos;
|
||||
// @ts-ignore
|
||||
if (input.charCodeAt(peg$currPos) === 40) {
|
||||
// @ts-ignore
|
||||
s1 = peg$c2;
|
||||
// @ts-ignore
|
||||
peg$currPos++;
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
s1 = peg$FAILED;
|
||||
// @ts-ignore
|
||||
if (peg$silentFails === 0) { peg$fail(peg$e2); }
|
||||
}
|
||||
// @ts-ignore
|
||||
if (s1 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s2 = peg$parse_();
|
||||
// @ts-ignore
|
||||
s3 = peg$parseEmverVersionRange();
|
||||
// @ts-ignore
|
||||
if (s3 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s4 = peg$parse_();
|
||||
// @ts-ignore
|
||||
if (input.charCodeAt(peg$currPos) === 41) {
|
||||
// @ts-ignore
|
||||
s5 = peg$c3;
|
||||
// @ts-ignore
|
||||
peg$currPos++;
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
s5 = peg$FAILED;
|
||||
// @ts-ignore
|
||||
if (peg$silentFails === 0) { peg$fail(peg$e3); }
|
||||
}
|
||||
// @ts-ignore
|
||||
if (s5 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
peg$savedPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$f15(s3);
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
peg$currPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$FAILED;
|
||||
}
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
peg$currPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$FAILED;
|
||||
}
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
peg$currPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$FAILED;
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
return s0;
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
function // @ts-ignore
|
||||
peg$parseEmverAnchor() {
|
||||
// @ts-ignore
|
||||
var s0, s1, s2, s3;
|
||||
|
||||
// @ts-ignore
|
||||
s0 = peg$currPos;
|
||||
// @ts-ignore
|
||||
s1 = peg$parseCmpOp();
|
||||
// @ts-ignore
|
||||
if (s1 === peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s1 = null;
|
||||
}
|
||||
// @ts-ignore
|
||||
s2 = peg$parse_();
|
||||
// @ts-ignore
|
||||
s3 = peg$parseEmver();
|
||||
// @ts-ignore
|
||||
if (s3 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
peg$savedPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$f16(s1, s3);
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
peg$currPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$FAILED;
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
return s0;
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
function // @ts-ignore
|
||||
peg$parseEmverNot() {
|
||||
// @ts-ignore
|
||||
var s0, s1, s2, s3;
|
||||
|
||||
// @ts-ignore
|
||||
s0 = peg$currPos;
|
||||
// @ts-ignore
|
||||
if (input.charCodeAt(peg$currPos) === 33) {
|
||||
// @ts-ignore
|
||||
s1 = peg$c5;
|
||||
// @ts-ignore
|
||||
peg$currPos++;
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
s1 = peg$FAILED;
|
||||
// @ts-ignore
|
||||
if (peg$silentFails === 0) { peg$fail(peg$e5); }
|
||||
}
|
||||
// @ts-ignore
|
||||
if (s1 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s2 = peg$parse_();
|
||||
// @ts-ignore
|
||||
s3 = peg$parseEmverVersionRangeAtom();
|
||||
// @ts-ignore
|
||||
if (s3 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
peg$savedPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$f17(s3);
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
peg$currPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$FAILED;
|
||||
}
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
peg$currPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$FAILED;
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
return s0;
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
function // @ts-ignore
|
||||
peg$parseEmver() {
|
||||
// @ts-ignore
|
||||
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
|
||||
|
||||
@@ -1603,9 +1944,9 @@ peg$parseEmVer() {
|
||||
// @ts-ignore
|
||||
if (s8 !== peg$FAILED) {
|
||||
// @ts-ignore
|
||||
s7 = [s7, s8];
|
||||
peg$savedPos = s6;
|
||||
// @ts-ignore
|
||||
s6 = s7;
|
||||
s6 = peg$f18(s1, s3, s5, s8);
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
@@ -1628,7 +1969,7 @@ peg$parseEmVer() {
|
||||
// @ts-ignore
|
||||
peg$savedPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$f15(s1, s3, s5);
|
||||
s0 = peg$f19(s1, s3, s5, s6);
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
@@ -1714,7 +2055,7 @@ peg$parseFlavor() {
|
||||
// @ts-ignore
|
||||
peg$savedPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$f16(s2);
|
||||
s0 = peg$f20(s2);
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
@@ -1794,7 +2135,7 @@ peg$parseLowercase() {
|
||||
// @ts-ignore
|
||||
peg$savedPos = s0;
|
||||
// @ts-ignore
|
||||
s1 = peg$f17();
|
||||
s1 = peg$f21();
|
||||
}
|
||||
// @ts-ignore
|
||||
s0 = s1;
|
||||
@@ -1856,7 +2197,7 @@ peg$parseString() {
|
||||
// @ts-ignore
|
||||
peg$savedPos = s0;
|
||||
// @ts-ignore
|
||||
s1 = peg$f18();
|
||||
s1 = peg$f22();
|
||||
}
|
||||
// @ts-ignore
|
||||
s0 = s1;
|
||||
@@ -1887,7 +2228,7 @@ peg$parseVersion() {
|
||||
// @ts-ignore
|
||||
peg$savedPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$f19(s1, s2);
|
||||
s0 = peg$f23(s1, s2);
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
@@ -2015,7 +2356,7 @@ peg$parsePreRelease() {
|
||||
// @ts-ignore
|
||||
peg$savedPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$f20(s2, s3);
|
||||
s0 = peg$f24(s2, s3);
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
@@ -2073,7 +2414,7 @@ peg$parsePreReleaseSegment() {
|
||||
// @ts-ignore
|
||||
peg$savedPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$f21(s2);
|
||||
s0 = peg$f25(s2);
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
@@ -2186,7 +2527,7 @@ peg$parseVersionNumber() {
|
||||
// @ts-ignore
|
||||
peg$savedPos = s0;
|
||||
// @ts-ignore
|
||||
s0 = peg$f22(s1, s2);
|
||||
s0 = peg$f26(s1, s2);
|
||||
// @ts-ignore
|
||||
} else {
|
||||
// @ts-ignore
|
||||
@@ -2252,7 +2593,7 @@ peg$parseDigit() {
|
||||
// @ts-ignore
|
||||
peg$savedPos = s0;
|
||||
// @ts-ignore
|
||||
s1 = peg$f23();
|
||||
s1 = peg$f27();
|
||||
}
|
||||
// @ts-ignore
|
||||
s0 = s1;
|
||||
@@ -2423,7 +2764,7 @@ peggyParser.SyntaxError.prototype.name = "PeggySyntaxError";
|
||||
|
||||
export interface ParseOptions {
|
||||
filename?: string;
|
||||
startRule?: "VersionRange" | "Or" | "And" | "VersionRangeAtom" | "Parens" | "Anchor" | "VersionSpec" | "Not" | "Any" | "None" | "CmpOp" | "ExtendedVersion" | "EmVer" | "Flavor" | "Lowercase" | "String" | "Version" | "PreRelease" | "PreReleaseSegment" | "VersionNumber" | "Digit" | "_";
|
||||
startRule?: "VersionRange" | "Or" | "And" | "VersionRangeAtom" | "Parens" | "Anchor" | "VersionSpec" | "Not" | "Any" | "None" | "CmpOp" | "ExtendedVersion" | "EmverVersionRange" | "EmverVersionRangeAtom" | "EmverParens" | "EmverAnchor" | "EmverNot" | "Emver" | "Flavor" | "Lowercase" | "String" | "Version" | "PreRelease" | "PreReleaseSegment" | "VersionNumber" | "Digit" | "_";
|
||||
tracer?: any;
|
||||
[key: string]: any;
|
||||
}
|
||||
@@ -2443,7 +2784,12 @@ export type ParseFunction = <Options extends ParseOptions>(
|
||||
StartRule extends "None" ? None :
|
||||
StartRule extends "CmpOp" ? CmpOp :
|
||||
StartRule extends "ExtendedVersion" ? ExtendedVersion :
|
||||
StartRule extends "EmVer" ? EmVer :
|
||||
StartRule extends "EmverVersionRange" ? EmverVersionRange :
|
||||
StartRule extends "EmverVersionRangeAtom" ? EmverVersionRangeAtom :
|
||||
StartRule extends "EmverParens" ? EmverParens :
|
||||
StartRule extends "EmverAnchor" ? EmverAnchor :
|
||||
StartRule extends "EmverNot" ? EmverNot :
|
||||
StartRule extends "Emver" ? Emver :
|
||||
StartRule extends "Flavor" ? Flavor :
|
||||
StartRule extends "Lowercase" ? Lowercase_1 :
|
||||
StartRule extends "String" ? String_1 :
|
||||
@@ -2488,10 +2834,27 @@ export type ExtendedVersion = {
|
||||
upstream: Version;
|
||||
downstream: Version;
|
||||
};
|
||||
export type EmVer = {
|
||||
export type EmverVersionRange = [
|
||||
EmverVersionRangeAtom,
|
||||
[_, [Or | And, _] | null, EmverVersionRangeAtom][]
|
||||
];
|
||||
export type EmverVersionRangeAtom =
|
||||
| EmverParens
|
||||
| EmverAnchor
|
||||
| EmverNot
|
||||
| Any
|
||||
| None;
|
||||
export type EmverParens = { type: "Parens"; expr: EmverVersionRange };
|
||||
export type EmverAnchor = {
|
||||
type: "Anchor";
|
||||
operator: CmpOp | null;
|
||||
version: Emver;
|
||||
};
|
||||
export type EmverNot = { type: "Not"; value: EmverVersionRangeAtom };
|
||||
export type Emver = {
|
||||
flavor: null;
|
||||
upstream: { number: [Digit, Digit, Digit]; prerelease: [] };
|
||||
downstream: { number: [any]; prerelease: [] };
|
||||
downstream: { number: [0 | NonNullable<Digit | null>]; prerelease: [] };
|
||||
};
|
||||
export type Flavor = Lowercase_1;
|
||||
export type Lowercase_1 = string;
|
||||
|
||||
@@ -123,6 +123,12 @@ export class VersionRange {
|
||||
)
|
||||
}
|
||||
|
||||
static parseEmver(range: string): VersionRange {
|
||||
return VersionRange.parseRange(
|
||||
P.parse(range, { startRule: "EmverVersionRange" }),
|
||||
)
|
||||
}
|
||||
|
||||
and(right: VersionRange) {
|
||||
return new VersionRange({ type: "And", left: this, right })
|
||||
}
|
||||
@@ -291,12 +297,19 @@ export class ExtendedVersion {
|
||||
}
|
||||
|
||||
static parseEmver(extendedVersion: string): ExtendedVersion {
|
||||
const parsed = P.parse(extendedVersion, { startRule: "EmVer" })
|
||||
return new ExtendedVersion(
|
||||
parsed.flavor,
|
||||
new Version(parsed.upstream.number, parsed.upstream.prerelease),
|
||||
new Version(parsed.downstream.number, parsed.downstream.prerelease),
|
||||
)
|
||||
try {
|
||||
const parsed = P.parse(extendedVersion, { startRule: "Emver" })
|
||||
return new ExtendedVersion(
|
||||
parsed.flavor,
|
||||
new Version(parsed.upstream.number, parsed.upstream.prerelease),
|
||||
new Version(parsed.downstream.number, parsed.downstream.prerelease),
|
||||
)
|
||||
} catch (e) {
|
||||
if (e instanceof Error) {
|
||||
e.message += ` (${extendedVersion})`
|
||||
}
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ImageMetadata = { workdir: string; user: string }
|
||||
export type ImageMetadata = {
|
||||
workdir: string
|
||||
user: string
|
||||
entrypoint: Array<string> | null
|
||||
cmd: Array<string> | null
|
||||
}
|
||||
|
||||
@@ -79,6 +79,7 @@ describe("startosTypeValidation ", () => {
|
||||
},
|
||||
getSystemSmtp: {} as WithCallback<GetSystemSmtpParams>,
|
||||
getContainerIp: undefined,
|
||||
getOsIp: undefined,
|
||||
getServicePortForward: {} as GetServicePortForwardParams,
|
||||
clearServiceInterfaces: {} as ClearServiceInterfacesParams,
|
||||
exportServiceInterface: {} as ExportServiceInterfaceParams,
|
||||
|
||||
@@ -127,7 +127,11 @@ export type SmtpValue = {
|
||||
password: string | null | undefined
|
||||
}
|
||||
|
||||
export type CommandType = string | [string, ...string[]]
|
||||
export class UseEntrypoint {
|
||||
constructor(readonly overridCmd?: string[]) {}
|
||||
}
|
||||
|
||||
export type CommandType = string | [string, ...string[]] | UseEntrypoint
|
||||
|
||||
export type DaemonReturned = {
|
||||
wait(): Promise<unknown>
|
||||
|
||||
@@ -48,6 +48,11 @@ export type SDKManifest = {
|
||||
/** Long description to display on the marketplace details page for this service. Max length 500 chars. */
|
||||
readonly long: string
|
||||
}
|
||||
/**
|
||||
* override the StartOS version this package was made for
|
||||
* defaults to the version the SDK was built for
|
||||
*/
|
||||
osVersion?: string
|
||||
/**
|
||||
* @description A mapping of OS images needed to run the container processes. Each image ID is a unique key.
|
||||
* @example
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import { Effects } from "../Effects"
|
||||
import * as T from "../types"
|
||||
|
||||
export class GetSystemSmtp {
|
||||
constructor(readonly effects: Effects) {}
|
||||
|
||||
/**
|
||||
* Returns the system SMTP credentials. Restarts the service if the credentials change
|
||||
* Returns the system SMTP credentials. Reruns the context from which it has been called if the underlying value changes
|
||||
*/
|
||||
const() {
|
||||
return this.effects.getSystemSmtp({
|
||||
@@ -17,8 +18,9 @@ export class GetSystemSmtp {
|
||||
once() {
|
||||
return this.effects.getSystemSmtp({})
|
||||
}
|
||||
|
||||
/**
|
||||
* Watches the system SMTP credentials. Takes a custom callback function to run whenever the credentials change
|
||||
* Watches the system SMTP credentials. Returns an async iterator that yields whenever the value changes
|
||||
*/
|
||||
async *watch() {
|
||||
while (true) {
|
||||
@@ -32,4 +34,34 @@ export class GetSystemSmtp {
|
||||
await waitForNext
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Watches the system SMTP credentials. Takes a custom callback function to run whenever the credentials change
|
||||
*/
|
||||
onChange(
|
||||
callback: (
|
||||
value: T.SmtpValue | null,
|
||||
error?: Error,
|
||||
) => void | Promise<void>,
|
||||
) {
|
||||
;(async () => {
|
||||
for await (const value of this.watch()) {
|
||||
try {
|
||||
await callback(value)
|
||||
} catch (e) {
|
||||
console.error(
|
||||
"callback function threw an error @ GetSystemSmtp.onChange",
|
||||
e,
|
||||
)
|
||||
}
|
||||
}
|
||||
})()
|
||||
.catch((e) => callback(null, e))
|
||||
.catch((e) =>
|
||||
console.error(
|
||||
"callback function threw an error @ GetSystemSmtp.onChange",
|
||||
e,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ export const getHostname = (url: string): Hostname | null => {
|
||||
|
||||
export type Filled = {
|
||||
hostnames: HostnameInfo[]
|
||||
publicHostnames: HostnameInfo[]
|
||||
onionHostnames: HostnameInfo[]
|
||||
localHostnames: HostnameInfo[]
|
||||
ipHostnames: HostnameInfo[]
|
||||
@@ -25,6 +26,7 @@ export type Filled = {
|
||||
nonIpHostnames: HostnameInfo[]
|
||||
|
||||
urls: UrlString[]
|
||||
publicUrls: UrlString[]
|
||||
onionUrls: UrlString[]
|
||||
localUrls: UrlString[]
|
||||
ipUrls: UrlString[]
|
||||
@@ -105,6 +107,9 @@ export const filledAddress = (
|
||||
return {
|
||||
...addressInfo,
|
||||
hostnames,
|
||||
get publicHostnames() {
|
||||
return hostnames.filter((h) => h.kind === "onion" || h.public)
|
||||
},
|
||||
get onionHostnames() {
|
||||
return hostnames.filter((h) => h.kind === "onion")
|
||||
},
|
||||
@@ -141,6 +146,9 @@ export const filledAddress = (
|
||||
get urls() {
|
||||
return this.hostnames.flatMap(toUrl)
|
||||
},
|
||||
get publicUrls() {
|
||||
return this.publicHostnames.flatMap(toUrl)
|
||||
},
|
||||
get onionUrls() {
|
||||
return this.onionHostnames.flatMap(toUrl)
|
||||
},
|
||||
@@ -205,7 +213,7 @@ export class GetServiceInterface {
|
||||
) {}
|
||||
|
||||
/**
|
||||
* Returns the value of Store at the provided path. Restart the service if the value changes
|
||||
* Returns the requested service interface. Reruns the context from which it has been called if the underlying value changes
|
||||
*/
|
||||
async const() {
|
||||
const { id, packageId } = this.opts
|
||||
@@ -220,7 +228,7 @@ export class GetServiceInterface {
|
||||
return interfaceFilled
|
||||
}
|
||||
/**
|
||||
* Returns the value of ServiceInterfacesFilled at the provided path. Does nothing if the value changes
|
||||
* Returns the requested service interface. Does nothing if the value changes
|
||||
*/
|
||||
async once() {
|
||||
const { id, packageId } = this.opts
|
||||
@@ -234,7 +242,7 @@ export class GetServiceInterface {
|
||||
}
|
||||
|
||||
/**
|
||||
* Watches the value of ServiceInterfacesFilled at the provided path. Takes a custom callback function to run whenever the value changes
|
||||
* Watches the requested service interface. Returns an async iterator that yields whenever the value changes
|
||||
*/
|
||||
async *watch() {
|
||||
const { id, packageId } = this.opts
|
||||
@@ -252,6 +260,36 @@ export class GetServiceInterface {
|
||||
await waitForNext
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Watches the requested service interface. Takes a custom callback function to run whenever the value changes
|
||||
*/
|
||||
onChange(
|
||||
callback: (
|
||||
value: ServiceInterfaceFilled | null,
|
||||
error?: Error,
|
||||
) => void | Promise<void>,
|
||||
) {
|
||||
;(async () => {
|
||||
for await (const value of this.watch()) {
|
||||
try {
|
||||
await callback(value)
|
||||
} catch (e) {
|
||||
console.error(
|
||||
"callback function threw an error @ GetServiceInterface.onChange",
|
||||
e,
|
||||
)
|
||||
}
|
||||
}
|
||||
})()
|
||||
.catch((e) => callback(null, e))
|
||||
.catch((e) =>
|
||||
console.error(
|
||||
"callback function threw an error @ GetServiceInterface.onChange",
|
||||
e,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
export function getServiceInterface(
|
||||
effects: Effects,
|
||||
|
||||
@@ -47,7 +47,7 @@ export class GetServiceInterfaces {
|
||||
) {}
|
||||
|
||||
/**
|
||||
* Returns the value of Store at the provided path. Restart the service if the value changes
|
||||
* Returns the service interfaces for the package. Reruns the context from which it has been called if the underlying value changes
|
||||
*/
|
||||
async const() {
|
||||
const { packageId } = this.opts
|
||||
@@ -62,7 +62,7 @@ export class GetServiceInterfaces {
|
||||
return interfaceFilled
|
||||
}
|
||||
/**
|
||||
* Returns the value of ServiceInterfacesFilled at the provided path. Does nothing if the value changes
|
||||
* Returns the service interfaces for the package. Does nothing if the value changes
|
||||
*/
|
||||
async once() {
|
||||
const { packageId } = this.opts
|
||||
@@ -76,7 +76,7 @@ export class GetServiceInterfaces {
|
||||
}
|
||||
|
||||
/**
|
||||
* Watches the value of ServiceInterfacesFilled at the provided path. Takes a custom callback function to run whenever the value changes
|
||||
* Watches the service interfaces for the package. Returns an async iterator that yields whenever the value changes
|
||||
*/
|
||||
async *watch() {
|
||||
const { packageId } = this.opts
|
||||
@@ -93,6 +93,36 @@ export class GetServiceInterfaces {
|
||||
await waitForNext
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Watches the service interfaces for the package. Takes a custom callback function to run whenever the value changes
|
||||
*/
|
||||
onChange(
|
||||
callback: (
|
||||
value: ServiceInterfaceFilled[] | null,
|
||||
error?: Error,
|
||||
) => void | Promise<void>,
|
||||
) {
|
||||
;(async () => {
|
||||
for await (const value of this.watch()) {
|
||||
try {
|
||||
await callback(value)
|
||||
} catch (e) {
|
||||
console.error(
|
||||
"callback function threw an error @ GetServiceInterfaces.onChange",
|
||||
e,
|
||||
)
|
||||
}
|
||||
}
|
||||
})()
|
||||
.catch((e) => callback(null, e))
|
||||
.catch((e) =>
|
||||
console.error(
|
||||
"callback function threw an error @ GetServiceInterfaces.onChange",
|
||||
e,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
export function getServiceInterfaces(
|
||||
effects: Effects,
|
||||
|
||||
8
sdk/base/package-lock.json
generated
8
sdk/base/package-lock.json
generated
@@ -27,7 +27,7 @@
|
||||
"ts-node": "^10.9.1",
|
||||
"ts-pegjs": "^4.2.1",
|
||||
"tsx": "^4.7.1",
|
||||
"typescript": "^5.0.4"
|
||||
"typescript": "^5.7.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@ampproject/remapping": {
|
||||
@@ -4773,9 +4773,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "5.7.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
|
||||
"integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
|
||||
"version": "5.7.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
|
||||
"integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
|
||||
@@ -47,6 +47,6 @@
|
||||
"ts-node": "^10.9.1",
|
||||
"ts-pegjs": "^4.2.1",
|
||||
"tsx": "^4.7.1",
|
||||
"typescript": "^5.0.4"
|
||||
"typescript": "^5.7.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"skipLibCheck": true,
|
||||
"module": "commonjs",
|
||||
"outDir": "../baseDist",
|
||||
"target": "es2018"
|
||||
"target": "es2021"
|
||||
},
|
||||
"include": ["lib/**/*"],
|
||||
"exclude": ["lib/**/*.spec.ts", "lib/**/*.gen.ts", "list", "node_modules"]
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,71 +1,129 @@
|
||||
body, html {
|
||||
margin:0; padding: 0;
|
||||
body,
|
||||
html {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
}
|
||||
body {
|
||||
font-family: Helvetica Neue, Helvetica, Arial;
|
||||
font-size: 14px;
|
||||
color:#333;
|
||||
font-family:
|
||||
Helvetica Neue,
|
||||
Helvetica,
|
||||
Arial;
|
||||
font-size: 14px;
|
||||
color: #333;
|
||||
}
|
||||
.small {
|
||||
font-size: 12px;
|
||||
}
|
||||
*,
|
||||
*:after,
|
||||
*:before {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
h1 {
|
||||
font-size: 20px;
|
||||
margin: 0;
|
||||
}
|
||||
h2 {
|
||||
font-size: 14px;
|
||||
}
|
||||
.small { font-size: 12px; }
|
||||
*, *:after, *:before {
|
||||
-webkit-box-sizing:border-box;
|
||||
-moz-box-sizing:border-box;
|
||||
box-sizing:border-box;
|
||||
}
|
||||
h1 { font-size: 20px; margin: 0;}
|
||||
h2 { font-size: 14px; }
|
||||
pre {
|
||||
font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-moz-tab-size: 2;
|
||||
-o-tab-size: 2;
|
||||
tab-size: 2;
|
||||
font:
|
||||
12px/1.4 Consolas,
|
||||
"Liberation Mono",
|
||||
Menlo,
|
||||
Courier,
|
||||
monospace;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-moz-tab-size: 2;
|
||||
-o-tab-size: 2;
|
||||
tab-size: 2;
|
||||
}
|
||||
a {
|
||||
color: #0074d9;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.space-top1 {
|
||||
padding: 10px 0 0 0;
|
||||
}
|
||||
.pad2y {
|
||||
padding: 20px 0;
|
||||
}
|
||||
.pad1y {
|
||||
padding: 10px 0;
|
||||
}
|
||||
.pad2x {
|
||||
padding: 0 20px;
|
||||
}
|
||||
.pad2 {
|
||||
padding: 20px;
|
||||
}
|
||||
.pad1 {
|
||||
padding: 10px;
|
||||
}
|
||||
.space-left2 {
|
||||
padding-left: 55px;
|
||||
}
|
||||
.space-right2 {
|
||||
padding-right: 20px;
|
||||
}
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
.clearfix {
|
||||
display: block;
|
||||
}
|
||||
a { color:#0074D9; text-decoration:none; }
|
||||
a:hover { text-decoration:underline; }
|
||||
.strong { font-weight: bold; }
|
||||
.space-top1 { padding: 10px 0 0 0; }
|
||||
.pad2y { padding: 20px 0; }
|
||||
.pad1y { padding: 10px 0; }
|
||||
.pad2x { padding: 0 20px; }
|
||||
.pad2 { padding: 20px; }
|
||||
.pad1 { padding: 10px; }
|
||||
.space-left2 { padding-left:55px; }
|
||||
.space-right2 { padding-right:20px; }
|
||||
.center { text-align:center; }
|
||||
.clearfix { display:block; }
|
||||
.clearfix:after {
|
||||
content:'';
|
||||
display:block;
|
||||
height:0;
|
||||
clear:both;
|
||||
visibility:hidden;
|
||||
content: "";
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
}
|
||||
.fl {
|
||||
float: left;
|
||||
}
|
||||
@media only screen and (max-width: 640px) {
|
||||
.col3 {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
.hide-mobile {
|
||||
display: none !important;
|
||||
}
|
||||
.fl { float: left; }
|
||||
@media only screen and (max-width:640px) {
|
||||
.col3 { width:100%; max-width:100%; }
|
||||
.hide-mobile { display:none!important; }
|
||||
}
|
||||
|
||||
.quiet {
|
||||
color: #7f7f7f;
|
||||
color: rgba(0,0,0,0.5);
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.quiet a {
|
||||
opacity: 0.7;
|
||||
}
|
||||
.quiet a { opacity: 0.7; }
|
||||
|
||||
.fraction {
|
||||
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
|
||||
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
font-size: 10px;
|
||||
color: #555;
|
||||
background: #E8E8E8;
|
||||
background: #e8e8e8;
|
||||
padding: 4px 5px;
|
||||
border-radius: 3px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
div.path a:link, div.path a:visited { color: #333; }
|
||||
div.path a:link,
|
||||
div.path a:visited {
|
||||
color: #333;
|
||||
}
|
||||
table.coverage {
|
||||
border-collapse: collapse;
|
||||
margin: 10px 0 0 0;
|
||||
@@ -78,140 +136,219 @@ table.coverage td {
|
||||
vertical-align: top;
|
||||
}
|
||||
table.coverage td.line-count {
|
||||
text-align: right;
|
||||
padding: 0 5px 0 20px;
|
||||
text-align: right;
|
||||
padding: 0 5px 0 20px;
|
||||
}
|
||||
table.coverage td.line-coverage {
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
min-width:20px;
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
min-width: 20px;
|
||||
}
|
||||
|
||||
table.coverage td span.cline-any {
|
||||
display: inline-block;
|
||||
padding: 0 5px;
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
padding: 0 5px;
|
||||
width: 100%;
|
||||
}
|
||||
.missing-if-branch {
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
border-radius: 3px;
|
||||
position: relative;
|
||||
padding: 0 4px;
|
||||
background: #333;
|
||||
color: yellow;
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
border-radius: 3px;
|
||||
position: relative;
|
||||
padding: 0 4px;
|
||||
background: #333;
|
||||
color: yellow;
|
||||
}
|
||||
|
||||
.skip-if-branch {
|
||||
display: none;
|
||||
margin-right: 10px;
|
||||
position: relative;
|
||||
padding: 0 4px;
|
||||
background: #ccc;
|
||||
color: white;
|
||||
display: none;
|
||||
margin-right: 10px;
|
||||
position: relative;
|
||||
padding: 0 4px;
|
||||
background: #ccc;
|
||||
color: white;
|
||||
}
|
||||
.missing-if-branch .typ, .skip-if-branch .typ {
|
||||
color: inherit !important;
|
||||
.missing-if-branch .typ,
|
||||
.skip-if-branch .typ {
|
||||
color: inherit !important;
|
||||
}
|
||||
.coverage-summary {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
.coverage-summary tr { border-bottom: 1px solid #bbb; }
|
||||
.keyline-all { border: 1px solid #ddd; }
|
||||
.coverage-summary td, .coverage-summary th { padding: 10px; }
|
||||
.coverage-summary tbody { border: 1px solid #bbb; }
|
||||
.coverage-summary td { border-right: 1px solid #bbb; }
|
||||
.coverage-summary td:last-child { border-right: none; }
|
||||
.coverage-summary tr {
|
||||
border-bottom: 1px solid #bbb;
|
||||
}
|
||||
.keyline-all {
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
.coverage-summary td,
|
||||
.coverage-summary th {
|
||||
padding: 10px;
|
||||
}
|
||||
.coverage-summary tbody {
|
||||
border: 1px solid #bbb;
|
||||
}
|
||||
.coverage-summary td {
|
||||
border-right: 1px solid #bbb;
|
||||
}
|
||||
.coverage-summary td:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
.coverage-summary th {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.coverage-summary th.file { border-right: none !important; }
|
||||
.coverage-summary th.pct { }
|
||||
.coverage-summary th.file {
|
||||
border-right: none !important;
|
||||
}
|
||||
.coverage-summary th.pct {
|
||||
}
|
||||
.coverage-summary th.pic,
|
||||
.coverage-summary th.abs,
|
||||
.coverage-summary td.pct,
|
||||
.coverage-summary td.abs { text-align: right; }
|
||||
.coverage-summary td.file { white-space: nowrap; }
|
||||
.coverage-summary td.pic { min-width: 120px !important; }
|
||||
.coverage-summary tfoot td { }
|
||||
.coverage-summary td.abs {
|
||||
text-align: right;
|
||||
}
|
||||
.coverage-summary td.file {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.coverage-summary td.pic {
|
||||
min-width: 120px !important;
|
||||
}
|
||||
.coverage-summary tfoot td {
|
||||
}
|
||||
|
||||
.coverage-summary .sorter {
|
||||
height: 10px;
|
||||
width: 7px;
|
||||
display: inline-block;
|
||||
margin-left: 0.5em;
|
||||
background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
|
||||
height: 10px;
|
||||
width: 7px;
|
||||
display: inline-block;
|
||||
margin-left: 0.5em;
|
||||
background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
|
||||
}
|
||||
.coverage-summary .sorted .sorter {
|
||||
background-position: 0 -20px;
|
||||
background-position: 0 -20px;
|
||||
}
|
||||
.coverage-summary .sorted-desc .sorter {
|
||||
background-position: 0 -10px;
|
||||
background-position: 0 -10px;
|
||||
}
|
||||
.status-line {
|
||||
height: 10px;
|
||||
}
|
||||
.status-line { height: 10px; }
|
||||
/* yellow */
|
||||
.cbranch-no { background: yellow !important; color: #111; }
|
||||
.cbranch-no {
|
||||
background: yellow !important;
|
||||
color: #111;
|
||||
}
|
||||
/* dark red */
|
||||
.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
|
||||
.low .chart { border:1px solid #C21F39 }
|
||||
.red.solid,
|
||||
.status-line.low,
|
||||
.low .cover-fill {
|
||||
background: #c21f39;
|
||||
}
|
||||
.low .chart {
|
||||
border: 1px solid #c21f39;
|
||||
}
|
||||
.highlighted,
|
||||
.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{
|
||||
background: #C21F39 !important;
|
||||
.highlighted .cstat-no,
|
||||
.highlighted .fstat-no,
|
||||
.highlighted .cbranch-no {
|
||||
background: #c21f39 !important;
|
||||
}
|
||||
/* medium red */
|
||||
.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
|
||||
.cstat-no,
|
||||
.fstat-no,
|
||||
.cbranch-no,
|
||||
.cbranch-no {
|
||||
background: #f6c6ce;
|
||||
}
|
||||
/* light red */
|
||||
.low, .cline-no { background:#FCE1E5 }
|
||||
.low,
|
||||
.cline-no {
|
||||
background: #fce1e5;
|
||||
}
|
||||
/* light green */
|
||||
.high, .cline-yes { background:rgb(230,245,208) }
|
||||
.high,
|
||||
.cline-yes {
|
||||
background: rgb(230, 245, 208);
|
||||
}
|
||||
/* medium green */
|
||||
.cstat-yes { background:rgb(161,215,106) }
|
||||
.cstat-yes {
|
||||
background: rgb(161, 215, 106);
|
||||
}
|
||||
/* dark green */
|
||||
.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
|
||||
.high .chart { border:1px solid rgb(77,146,33) }
|
||||
.status-line.high,
|
||||
.high .cover-fill {
|
||||
background: rgb(77, 146, 33);
|
||||
}
|
||||
.high .chart {
|
||||
border: 1px solid rgb(77, 146, 33);
|
||||
}
|
||||
/* dark yellow (gold) */
|
||||
.status-line.medium, .medium .cover-fill { background: #f9cd0b; }
|
||||
.medium .chart { border:1px solid #f9cd0b; }
|
||||
.status-line.medium,
|
||||
.medium .cover-fill {
|
||||
background: #f9cd0b;
|
||||
}
|
||||
.medium .chart {
|
||||
border: 1px solid #f9cd0b;
|
||||
}
|
||||
/* light yellow */
|
||||
.medium { background: #fff4c2; }
|
||||
|
||||
.cstat-skip { background: #ddd; color: #111; }
|
||||
.fstat-skip { background: #ddd; color: #111 !important; }
|
||||
.cbranch-skip { background: #ddd !important; color: #111; }
|
||||
|
||||
span.cline-neutral { background: #eaeaea; }
|
||||
|
||||
.coverage-summary td.empty {
|
||||
opacity: .5;
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
line-height: 1;
|
||||
color: #888;
|
||||
.medium {
|
||||
background: #fff4c2;
|
||||
}
|
||||
|
||||
.cover-fill, .cover-empty {
|
||||
display:inline-block;
|
||||
.cstat-skip {
|
||||
background: #ddd;
|
||||
color: #111;
|
||||
}
|
||||
.fstat-skip {
|
||||
background: #ddd;
|
||||
color: #111 !important;
|
||||
}
|
||||
.cbranch-skip {
|
||||
background: #ddd !important;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
span.cline-neutral {
|
||||
background: #eaeaea;
|
||||
}
|
||||
|
||||
.coverage-summary td.empty {
|
||||
opacity: 0.5;
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
line-height: 1;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.cover-fill,
|
||||
.cover-empty {
|
||||
display: inline-block;
|
||||
height: 12px;
|
||||
}
|
||||
.chart {
|
||||
line-height: 0;
|
||||
}
|
||||
.cover-empty {
|
||||
background: white;
|
||||
background: white;
|
||||
}
|
||||
.cover-full {
|
||||
border-right: none !important;
|
||||
border-right: none !important;
|
||||
}
|
||||
pre.prettyprint {
|
||||
border: none !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
border: none !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
.com {
|
||||
color: #999 !important;
|
||||
}
|
||||
.ignore-none {
|
||||
color: #999;
|
||||
font-weight: normal;
|
||||
}
|
||||
.com { color: #999 !important; }
|
||||
.ignore-none { color: #999; font-weight: normal; }
|
||||
|
||||
.wrapper {
|
||||
min-height: 100%;
|
||||
@@ -219,6 +356,7 @@ pre.prettyprint {
|
||||
height: 100%;
|
||||
margin: 0 auto -48px;
|
||||
}
|
||||
.footer, .push {
|
||||
.footer,
|
||||
.push {
|
||||
height: 48px;
|
||||
}
|
||||
|
||||
@@ -1,87 +1,85 @@
|
||||
/* eslint-disable */
|
||||
var jumpToCode = (function init() {
|
||||
// Classes of code we would like to highlight in the file view
|
||||
var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
|
||||
// Classes of code we would like to highlight in the file view
|
||||
var missingCoverageClasses = [".cbranch-no", ".cstat-no", ".fstat-no"];
|
||||
|
||||
// Elements to highlight in the file listing view
|
||||
var fileListingElements = ['td.pct.low'];
|
||||
// Elements to highlight in the file listing view
|
||||
var fileListingElements = ["td.pct.low"];
|
||||
|
||||
// We don't want to select elements that are direct descendants of another match
|
||||
var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
|
||||
// We don't want to select elements that are direct descendants of another match
|
||||
var notSelector = ":not(" + missingCoverageClasses.join("):not(") + ") > "; // becomes `:not(a):not(b) > `
|
||||
|
||||
// Selecter that finds elements on the page to which we can jump
|
||||
var selector =
|
||||
fileListingElements.join(', ') +
|
||||
', ' +
|
||||
notSelector +
|
||||
missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
|
||||
// Selecter that finds elements on the page to which we can jump
|
||||
var selector =
|
||||
fileListingElements.join(", ") +
|
||||
", " +
|
||||
notSelector +
|
||||
missingCoverageClasses.join(", " + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
|
||||
|
||||
// The NodeList of matching elements
|
||||
var missingCoverageElements = document.querySelectorAll(selector);
|
||||
// The NodeList of matching elements
|
||||
var missingCoverageElements = document.querySelectorAll(selector);
|
||||
|
||||
var currentIndex;
|
||||
var currentIndex;
|
||||
|
||||
function toggleClass(index) {
|
||||
missingCoverageElements
|
||||
.item(currentIndex)
|
||||
.classList.remove('highlighted');
|
||||
missingCoverageElements.item(index).classList.add('highlighted');
|
||||
function toggleClass(index) {
|
||||
missingCoverageElements.item(currentIndex).classList.remove("highlighted");
|
||||
missingCoverageElements.item(index).classList.add("highlighted");
|
||||
}
|
||||
|
||||
function makeCurrent(index) {
|
||||
toggleClass(index);
|
||||
currentIndex = index;
|
||||
missingCoverageElements.item(index).scrollIntoView({
|
||||
behavior: "smooth",
|
||||
block: "center",
|
||||
inline: "center",
|
||||
});
|
||||
}
|
||||
|
||||
function goToPrevious() {
|
||||
var nextIndex = 0;
|
||||
if (typeof currentIndex !== "number" || currentIndex === 0) {
|
||||
nextIndex = missingCoverageElements.length - 1;
|
||||
} else if (missingCoverageElements.length > 1) {
|
||||
nextIndex = currentIndex - 1;
|
||||
}
|
||||
|
||||
function makeCurrent(index) {
|
||||
toggleClass(index);
|
||||
currentIndex = index;
|
||||
missingCoverageElements.item(index).scrollIntoView({
|
||||
behavior: 'smooth',
|
||||
block: 'center',
|
||||
inline: 'center'
|
||||
});
|
||||
makeCurrent(nextIndex);
|
||||
}
|
||||
|
||||
function goToNext() {
|
||||
var nextIndex = 0;
|
||||
|
||||
if (
|
||||
typeof currentIndex === "number" &&
|
||||
currentIndex < missingCoverageElements.length - 1
|
||||
) {
|
||||
nextIndex = currentIndex + 1;
|
||||
}
|
||||
|
||||
function goToPrevious() {
|
||||
var nextIndex = 0;
|
||||
if (typeof currentIndex !== 'number' || currentIndex === 0) {
|
||||
nextIndex = missingCoverageElements.length - 1;
|
||||
} else if (missingCoverageElements.length > 1) {
|
||||
nextIndex = currentIndex - 1;
|
||||
}
|
||||
makeCurrent(nextIndex);
|
||||
}
|
||||
|
||||
makeCurrent(nextIndex);
|
||||
return function jump(event) {
|
||||
if (
|
||||
document.getElementById("fileSearch") === document.activeElement &&
|
||||
document.activeElement != null
|
||||
) {
|
||||
// if we're currently focused on the search input, we don't want to navigate
|
||||
return;
|
||||
}
|
||||
|
||||
function goToNext() {
|
||||
var nextIndex = 0;
|
||||
|
||||
if (
|
||||
typeof currentIndex === 'number' &&
|
||||
currentIndex < missingCoverageElements.length - 1
|
||||
) {
|
||||
nextIndex = currentIndex + 1;
|
||||
}
|
||||
|
||||
makeCurrent(nextIndex);
|
||||
switch (event.which) {
|
||||
case 78: // n
|
||||
case 74: // j
|
||||
goToNext();
|
||||
break;
|
||||
case 66: // b
|
||||
case 75: // k
|
||||
case 80: // p
|
||||
goToPrevious();
|
||||
break;
|
||||
}
|
||||
|
||||
return function jump(event) {
|
||||
if (
|
||||
document.getElementById('fileSearch') === document.activeElement &&
|
||||
document.activeElement != null
|
||||
) {
|
||||
// if we're currently focused on the search input, we don't want to navigate
|
||||
return;
|
||||
}
|
||||
|
||||
switch (event.which) {
|
||||
case 78: // n
|
||||
case 74: // j
|
||||
goToNext();
|
||||
break;
|
||||
case 66: // b
|
||||
case 75: // k
|
||||
case 80: // p
|
||||
goToPrevious();
|
||||
break;
|
||||
}
|
||||
};
|
||||
};
|
||||
})();
|
||||
window.addEventListener('keydown', jumpToCode);
|
||||
window.addEventListener("keydown", jumpToCode);
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for config/builder/config.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">config/builder</a> config.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">78.57% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>11/14</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">75% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>3/4</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">78.57% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>11/14</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">config/builder</a> config.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">78.57% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">11/14</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/0</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">75% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">3/4</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">78.57% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">11/14</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line medium'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line medium"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -476,21 +472,27 @@ export class Config<Type extends Record<string, any>, Store = never>
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,146 +1,216 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for config/builder</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1><a href="../../index.html">All files</a> config/builder</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">31.73% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>33/104</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/29</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">17.18% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>11/64</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">31.37% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>32/102</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">31.73% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">33/104</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/29</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">17.18% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">11/64</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">31.37% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">32/102</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file medium" data-value="config.ts">
|
||||
<a href="config.ts.html">config.ts</a>
|
||||
</td>
|
||||
<td data-value="78.57" class="pic medium">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 78%"></div>
|
||||
<div class="cover-empty" style="width: 22%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="78.57" class="pct medium">78.57%</td>
|
||||
<td data-value="14" class="abs medium">11/14</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="75" class="pct medium">75%</td>
|
||||
<td data-value="4" class="abs medium">3/4</td>
|
||||
<td data-value="78.57" class="pct medium">78.57%</td>
|
||||
<td data-value="14" class="abs medium">11/14</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file medium" data-value="list.ts">
|
||||
<a href="list.ts.html">list.ts</a>
|
||||
</td>
|
||||
<td data-value="70" class="pic medium">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 70%"></div>
|
||||
<div class="cover-empty" style="width: 30%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="70" class="pct medium">70%</td>
|
||||
<td data-value="20" class="abs medium">14/20</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="62.5" class="pct medium">62.5%</td>
|
||||
<td data-value="8" class="abs medium">5/8</td>
|
||||
<td data-value="70" class="pct medium">70%</td>
|
||||
<td data-value="20" class="abs medium">14/20</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="value.ts">
|
||||
<a href="value.ts.html">value.ts</a>
|
||||
</td>
|
||||
<td data-value="11.42" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 11%"></div>
|
||||
<div class="cover-empty" style="width: 89%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="11.42" class="pct low">11.42%</td>
|
||||
<td data-value="70" class="abs low">8/70</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="29" class="abs low">0/29</td>
|
||||
<td data-value="5.76" class="pct low">5.76%</td>
|
||||
<td data-value="52" class="abs low">3/52</td>
|
||||
<td data-value="10.29" class="pct low">10.29%</td>
|
||||
<td data-value="68" class="abs low">7/68</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file medium" data-value="config.ts"><a href="config.ts.html">config.ts</a></td>
|
||||
<td data-value="78.57" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div>
|
||||
</td>
|
||||
<td data-value="78.57" class="pct medium">78.57%</td>
|
||||
<td data-value="14" class="abs medium">11/14</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="75" class="pct medium">75%</td>
|
||||
<td data-value="4" class="abs medium">3/4</td>
|
||||
<td data-value="78.57" class="pct medium">78.57%</td>
|
||||
<td data-value="14" class="abs medium">11/14</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file medium" data-value="list.ts"><a href="list.ts.html">list.ts</a></td>
|
||||
<td data-value="70" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 70%"></div><div class="cover-empty" style="width: 30%"></div></div>
|
||||
</td>
|
||||
<td data-value="70" class="pct medium">70%</td>
|
||||
<td data-value="20" class="abs medium">14/20</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="62.5" class="pct medium">62.5%</td>
|
||||
<td data-value="8" class="abs medium">5/8</td>
|
||||
<td data-value="70" class="pct medium">70%</td>
|
||||
<td data-value="20" class="abs medium">14/20</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="value.ts"><a href="value.ts.html">value.ts</a></td>
|
||||
<td data-value="11.42" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 11%"></div><div class="cover-empty" style="width: 89%"></div></div>
|
||||
</td>
|
||||
<td data-value="11.42" class="pct low">11.42%</td>
|
||||
<td data-value="70" class="abs low">8/70</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="29" class="abs low">0/29</td>
|
||||
<td data-value="5.76" class="pct low">5.76%</td>
|
||||
<td data-value="52" class="abs low">3/52</td>
|
||||
<td data-value="10.29" class="pct low">10.29%</td>
|
||||
<td data-value="68" class="abs low">7/68</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for config/builder/list.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">config/builder</a> list.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">70% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>14/20</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">62.5% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>5/8</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">70% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>14/20</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">config/builder</a> list.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">70% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">14/20</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/0</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">62.5% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">5/8</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">70% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">14/20</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line medium'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line medium"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -629,21 +625,27 @@ export class List<Type, Store> {
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for config/builder/value.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">config/builder</a> value.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">11.42% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>8/70</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/29</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">5.76% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>3/52</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">10.29% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>7/68</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">config/builder</a> value.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">11.42% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">8/70</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/29</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">5.76% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">3/52</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">10.29% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">7/68</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -2414,21 +2410,27 @@ export class Value<Type, Store> {
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for config/configTypes.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../prettify.css" />
|
||||
<link rel="stylesheet" href="../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../index.html">All files</a> / <a href="index.html">config</a> configTypes.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>4/4</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>2/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>1/1</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>4/4</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../index.html">All files</a> /
|
||||
<a href="index.html">config</a> configTypes.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">4/4</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">2/2</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">1/1</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">4/4</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -899,21 +895,27 @@ export const unionValueKey = "unionValueKey" as const
|
||||
export type UnionValueKey = typeof unionValueKey
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,116 +1,176 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for config</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../prettify.css" />
|
||||
<link rel="stylesheet" href="../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1><a href="../index.html">All files</a> config</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>4/4</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>2/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>1/1</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>4/4</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">4/4</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">2/2</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">1/1</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">4/4</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file high" data-value="configTypes.ts">
|
||||
<a href="configTypes.ts.html">configTypes.ts</a>
|
||||
</td>
|
||||
<td data-value="100" class="pic high">
|
||||
<div class="chart">
|
||||
<div class="cover-fill cover-full" style="width: 100%"></div>
|
||||
<div class="cover-empty" style="width: 0%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="4" class="abs high">4/4</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="1" class="abs high">1/1</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="4" class="abs high">4/4</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file high" data-value="configTypes.ts"><a href="configTypes.ts.html">configTypes.ts</a></td>
|
||||
<td data-value="100" class="pic high">
|
||||
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
||||
</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="4" class="abs high">4/4</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="1" class="abs high">1/1</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="4" class="abs high">4/4</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,116 +1,176 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for emverLite</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../prettify.css" />
|
||||
<link rel="stylesheet" href="../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1><a href="../index.html">All files</a> emverLite</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">96.99% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>129/133</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">91.89% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>34/37</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">97.56% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>40/41</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">97.65% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>125/128</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">96.99% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">129/133</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">91.89% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">34/37</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">97.56% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">40/41</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">97.65% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">125/128</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file high" data-value="mod.ts">
|
||||
<a href="mod.ts.html">mod.ts</a>
|
||||
</td>
|
||||
<td data-value="96.99" class="pic high">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 96%"></div>
|
||||
<div class="cover-empty" style="width: 4%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="96.99" class="pct high">96.99%</td>
|
||||
<td data-value="133" class="abs high">129/133</td>
|
||||
<td data-value="91.89" class="pct high">91.89%</td>
|
||||
<td data-value="37" class="abs high">34/37</td>
|
||||
<td data-value="97.56" class="pct high">97.56%</td>
|
||||
<td data-value="41" class="abs high">40/41</td>
|
||||
<td data-value="97.65" class="pct high">97.65%</td>
|
||||
<td data-value="128" class="abs high">125/128</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file high" data-value="mod.ts"><a href="mod.ts.html">mod.ts</a></td>
|
||||
<td data-value="96.99" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
|
||||
</td>
|
||||
<td data-value="96.99" class="pct high">96.99%</td>
|
||||
<td data-value="133" class="abs high">129/133</td>
|
||||
<td data-value="91.89" class="pct high">91.89%</td>
|
||||
<td data-value="37" class="abs high">34/37</td>
|
||||
<td data-value="97.56" class="pct high">97.56%</td>
|
||||
<td data-value="41" class="abs high">40/41</td>
|
||||
<td data-value="97.65" class="pct high">97.65%</td>
|
||||
<td data-value="128" class="abs high">125/128</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for emverLite/mod.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../prettify.css" />
|
||||
<link rel="stylesheet" href="../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../index.html">All files</a> / <a href="index.html">emverLite</a> mod.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">96.99% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>129/133</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">91.89% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>34/37</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">97.56% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>40/41</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">97.65% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>125/128</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../index.html">All files</a> /
|
||||
<a href="index.html">emverLite</a> mod.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">96.99% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">129/133</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">91.89% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">34/37</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">97.56% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">40/41</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">97.65% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">125/128</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -1034,21 +1030,27 @@ export class Checker {
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,66 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>Code coverage report for health/checkFns/checkPortListening.ts</title>
|
||||
<head>
|
||||
<title>
|
||||
Code coverage report for health/checkFns/checkPortListening.ts
|
||||
</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">health/checkFns</a> checkPortListening.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">61.11% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>11/18</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/7</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">42.85% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>3/7</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">61.11% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>11/18</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">health/checkFns</a> checkPortListening.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">61.11% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">11/18</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/7</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">42.85% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">3/7</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">61.11% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">11/18</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line medium'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line medium"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -266,21 +264,27 @@ export async function <span class="fstat-no" title="function not covered" >check
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,116 +1,176 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for health/checkFns</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1><a href="../../index.html">All files</a> health/checkFns</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">61.11% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>11/18</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/7</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">42.85% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>3/7</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">61.11% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>11/18</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">61.11% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">11/18</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/7</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">42.85% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">3/7</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">61.11% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">11/18</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line medium"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file medium" data-value="checkPortListening.ts">
|
||||
<a href="checkPortListening.ts.html">checkPortListening.ts</a>
|
||||
</td>
|
||||
<td data-value="61.11" class="pic medium">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 61%"></div>
|
||||
<div class="cover-empty" style="width: 39%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="61.11" class="pct medium">61.11%</td>
|
||||
<td data-value="18" class="abs medium">11/18</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="7" class="abs low">0/7</td>
|
||||
<td data-value="42.85" class="pct low">42.85%</td>
|
||||
<td data-value="7" class="abs low">3/7</td>
|
||||
<td data-value="61.11" class="pct medium">61.11%</td>
|
||||
<td data-value="18" class="abs medium">11/18</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line medium'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file medium" data-value="checkPortListening.ts"><a href="checkPortListening.ts.html">checkPortListening.ts</a></td>
|
||||
<td data-value="61.11" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 61%"></div><div class="cover-empty" style="width: 39%"></div></div>
|
||||
</td>
|
||||
<td data-value="61.11" class="pct medium">61.11%</td>
|
||||
<td data-value="18" class="abs medium">11/18</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="7" class="abs low">0/7</td>
|
||||
<td data-value="42.85" class="pct low">42.85%</td>
|
||||
<td data-value="7" class="abs low">3/7</td>
|
||||
<td data-value="61.11" class="pct medium">61.11%</td>
|
||||
<td data-value="18" class="abs medium">11/18</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,371 +1,516 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for All files</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="prettify.css" />
|
||||
<link rel="stylesheet" href="base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>All files</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">48.29% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>1329/2752</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">37.19% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>334/898</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">30.54% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>212/694</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">48.21% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>1256/2605</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">48.29% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">1329/2752</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">37.19% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">334/898</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">30.54% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">212/694</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">48.21% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">1256/2605</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file low" data-value="lib">
|
||||
<a href="lib/index.html">lib</a>
|
||||
</td>
|
||||
<td data-value="40.27" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 40%"></div>
|
||||
<div class="cover-empty" style="width: 60%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="40.27" class="pct low">40.27%</td>
|
||||
<td data-value="144" class="abs low">58/144</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="11" class="abs low">0/11</td>
|
||||
<td data-value="11.76" class="pct low">11.76%</td>
|
||||
<td data-value="85" class="abs low">10/85</td>
|
||||
<td data-value="40.27" class="pct low">40.27%</td>
|
||||
<td data-value="144" class="abs low">58/144</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/actions">
|
||||
<a href="lib/actions/index.html">lib/actions</a>
|
||||
</td>
|
||||
<td data-value="10.71" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 10%"></div>
|
||||
<div class="cover-empty" style="width: 90%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="10.71" class="pct low">10.71%</td>
|
||||
<td data-value="28" class="abs low">3/28</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="2" class="abs low">0/2</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="12" class="abs low">0/12</td>
|
||||
<td data-value="10.71" class="pct low">10.71%</td>
|
||||
<td data-value="28" class="abs low">3/28</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/backup">
|
||||
<a href="lib/backup/index.html">lib/backup</a>
|
||||
</td>
|
||||
<td data-value="8.79" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 8%"></div>
|
||||
<div class="cover-empty" style="width: 92%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="8.79" class="pct low">8.79%</td>
|
||||
<td data-value="91" class="abs low">8/91</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="11" class="abs low">0/11</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="27" class="abs low">0/27</td>
|
||||
<td data-value="9.09" class="pct low">9.09%</td>
|
||||
<td data-value="88" class="abs low">8/88</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/config">
|
||||
<a href="lib/config/index.html">lib/config</a>
|
||||
</td>
|
||||
<td data-value="46.15" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 46%"></div>
|
||||
<div class="cover-empty" style="width: 54%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="46.15" class="pct low">46.15%</td>
|
||||
<td data-value="26" class="abs low">12/26</td>
|
||||
<td data-value="25" class="pct low">25%</td>
|
||||
<td data-value="8" class="abs low">2/8</td>
|
||||
<td data-value="20" class="pct low">20%</td>
|
||||
<td data-value="5" class="abs low">1/5</td>
|
||||
<td data-value="46.15" class="pct low">46.15%</td>
|
||||
<td data-value="26" class="abs low">12/26</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="lib/config/builder">
|
||||
<a href="lib/config/builder/index.html">lib/config/builder</a>
|
||||
</td>
|
||||
<td data-value="84.61" class="pic high">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 84%"></div>
|
||||
<div class="cover-empty" style="width: 16%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="84.61" class="pct high">84.61%</td>
|
||||
<td data-value="117" class="abs high">99/117</td>
|
||||
<td data-value="55.17" class="pct medium">55.17%</td>
|
||||
<td data-value="29" class="abs medium">16/29</td>
|
||||
<td data-value="78.26" class="pct medium">78.26%</td>
|
||||
<td data-value="69" class="abs medium">54/69</td>
|
||||
<td data-value="84.34" class="pct high">84.34%</td>
|
||||
<td data-value="115" class="abs high">97/115</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/dependencies">
|
||||
<a href="lib/dependencies/index.html">lib/dependencies</a>
|
||||
</td>
|
||||
<td data-value="9.67" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 9%"></div>
|
||||
<div class="cover-empty" style="width: 91%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="9.67" class="pct low">9.67%</td>
|
||||
<td data-value="93" class="abs low">9/93</td>
|
||||
<td data-value="1.78" class="pct low">1.78%</td>
|
||||
<td data-value="56" class="abs low">1/56</td>
|
||||
<td data-value="6.25" class="pct low">6.25%</td>
|
||||
<td data-value="32" class="abs low">2/32</td>
|
||||
<td data-value="10" class="pct low">10%</td>
|
||||
<td data-value="90" class="abs low">9/90</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file medium" data-value="lib/exver">
|
||||
<a href="lib/exver/index.html">lib/exver</a>
|
||||
</td>
|
||||
<td data-value="71.73" class="pic medium">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 71%"></div>
|
||||
<div class="cover-empty" style="width: 29%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="71.73" class="pct medium">71.73%</td>
|
||||
<td data-value="994" class="abs medium">713/994</td>
|
||||
<td data-value="63.29" class="pct medium">63.29%</td>
|
||||
<td data-value="395" class="abs medium">250/395</td>
|
||||
<td data-value="71.65" class="pct medium">71.65%</td>
|
||||
<td data-value="127" class="abs medium">91/127</td>
|
||||
<td data-value="71.77" class="pct medium">71.77%</td>
|
||||
<td data-value="946" class="abs medium">679/946</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/health">
|
||||
<a href="lib/health/index.html">lib/health</a>
|
||||
</td>
|
||||
<td data-value="17.24" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 17%"></div>
|
||||
<div class="cover-empty" style="width: 83%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="17.24" class="pct low">17.24%</td>
|
||||
<td data-value="29" class="abs low">5/29</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="12" class="abs low">0/12</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="6" class="abs low">0/6</td>
|
||||
<td data-value="19.23" class="pct low">19.23%</td>
|
||||
<td data-value="26" class="abs low">5/26</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file medium" data-value="lib/health/checkFns">
|
||||
<a href="lib/health/checkFns/index.html">lib/health/checkFns</a>
|
||||
</td>
|
||||
<td data-value="53.06" class="pic medium">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 53%"></div>
|
||||
<div class="cover-empty" style="width: 47%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="53.06" class="pct medium">53.06%</td>
|
||||
<td data-value="49" class="abs medium">26/49</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="17" class="abs low">0/17</td>
|
||||
<td data-value="26.31" class="pct low">26.31%</td>
|
||||
<td data-value="19" class="abs low">5/19</td>
|
||||
<td data-value="50" class="pct medium">50%</td>
|
||||
<td data-value="44" class="abs medium">22/44</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/inits">
|
||||
<a href="lib/inits/index.html">lib/inits</a>
|
||||
</td>
|
||||
<td data-value="20.68" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 20%"></div>
|
||||
<div class="cover-empty" style="width: 80%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="20.68" class="pct low">20.68%</td>
|
||||
<td data-value="29" class="abs low">6/29</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="6" class="abs low">0/6</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="11" class="abs low">0/11</td>
|
||||
<td data-value="20.68" class="pct low">20.68%</td>
|
||||
<td data-value="29" class="abs low">6/29</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/interfaces">
|
||||
<a href="lib/interfaces/index.html">lib/interfaces</a>
|
||||
</td>
|
||||
<td data-value="22.44" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 22%"></div>
|
||||
<div class="cover-empty" style="width: 78%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="22.44" class="pct low">22.44%</td>
|
||||
<td data-value="49" class="abs low">11/49</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="24" class="abs low">0/24</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="13" class="abs low">0/13</td>
|
||||
<td data-value="22.22" class="pct low">22.22%</td>
|
||||
<td data-value="45" class="abs low">10/45</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/mainFn">
|
||||
<a href="lib/mainFn/index.html">lib/mainFn</a>
|
||||
</td>
|
||||
<td data-value="15.78" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 15%"></div>
|
||||
<div class="cover-empty" style="width: 85%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="15.78" class="pct low">15.78%</td>
|
||||
<td data-value="228" class="abs low">36/228</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="38" class="abs low">0/38</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="77" class="abs low">0/77</td>
|
||||
<td data-value="15.16" class="pct low">15.16%</td>
|
||||
<td data-value="211" class="abs low">32/211</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/manifest">
|
||||
<a href="lib/manifest/index.html">lib/manifest</a>
|
||||
</td>
|
||||
<td data-value="25" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 25%"></div>
|
||||
<div class="cover-empty" style="width: 75%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="25" class="pct low">25%</td>
|
||||
<td data-value="16" class="abs low">4/16</td>
|
||||
<td data-value="65.51" class="pct medium">65.51%</td>
|
||||
<td data-value="29" class="abs medium">19/29</td>
|
||||
<td data-value="20" class="pct low">20%</td>
|
||||
<td data-value="5" class="abs low">1/5</td>
|
||||
<td data-value="26.66" class="pct low">26.66%</td>
|
||||
<td data-value="15" class="abs low">4/15</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/store">
|
||||
<a href="lib/store/index.html">lib/store</a>
|
||||
</td>
|
||||
<td data-value="35.71" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 35%"></div>
|
||||
<div class="cover-empty" style="width: 65%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="35.71" class="pct low">35.71%</td>
|
||||
<td data-value="28" class="abs low">10/28</td>
|
||||
<td data-value="20" class="pct low">20%</td>
|
||||
<td data-value="5" class="abs low">1/5</td>
|
||||
<td data-value="10" class="pct low">10%</td>
|
||||
<td data-value="10" class="abs low">1/10</td>
|
||||
<td data-value="32" class="pct low">32%</td>
|
||||
<td data-value="25" class="abs low">8/25</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="lib/test">
|
||||
<a href="lib/test/index.html">lib/test</a>
|
||||
</td>
|
||||
<td data-value="100" class="pic high">
|
||||
<div class="chart">
|
||||
<div class="cover-fill cover-full" style="width: 100%"></div>
|
||||
<div class="cover-empty" style="width: 0%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="9" class="abs high">9/9</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="9" class="abs high">9/9</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/trigger">
|
||||
<a href="lib/trigger/index.html">lib/trigger</a>
|
||||
</td>
|
||||
<td data-value="30.61" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 30%"></div>
|
||||
<div class="cover-empty" style="width: 70%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="30.61" class="pct low">30.61%</td>
|
||||
<td data-value="49" class="abs low">15/49</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="5" class="abs low">0/5</td>
|
||||
<td data-value="40" class="pct low">40%</td>
|
||||
<td data-value="10" class="abs low">4/10</td>
|
||||
<td data-value="26.66" class="pct low">26.66%</td>
|
||||
<td data-value="45" class="abs low">12/45</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/util">
|
||||
<a href="lib/util/index.html">lib/util</a>
|
||||
</td>
|
||||
<td data-value="36.83" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 36%"></div>
|
||||
<div class="cover-empty" style="width: 64%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="36.83" class="pct low">36.83%</td>
|
||||
<td data-value="695" class="abs low">256/695</td>
|
||||
<td data-value="12.2" class="pct low">12.2%</td>
|
||||
<td data-value="213" class="abs low">26/213</td>
|
||||
<td data-value="17.96" class="pct low">17.96%</td>
|
||||
<td data-value="167" class="abs low">30/167</td>
|
||||
<td data-value="36.29" class="pct low">36.29%</td>
|
||||
<td data-value="642" class="abs low">233/642</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file medium" data-value="lib/version">
|
||||
<a href="lib/version/index.html">lib/version</a>
|
||||
</td>
|
||||
<td data-value="62.82" class="pic medium">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 62%"></div>
|
||||
<div class="cover-empty" style="width: 38%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="62.82" class="pct medium">62.82%</td>
|
||||
<td data-value="78" class="abs medium">49/78</td>
|
||||
<td data-value="51.35" class="pct medium">51.35%</td>
|
||||
<td data-value="37" class="abs medium">19/37</td>
|
||||
<td data-value="68.42" class="pct medium">68.42%</td>
|
||||
<td data-value="19" class="abs medium">13/19</td>
|
||||
<td data-value="63.63" class="pct medium">63.63%</td>
|
||||
<td data-value="77" class="abs medium">49/77</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file low" data-value="lib"><a href="lib/index.html">lib</a></td>
|
||||
<td data-value="40.27" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 40%"></div><div class="cover-empty" style="width: 60%"></div></div>
|
||||
</td>
|
||||
<td data-value="40.27" class="pct low">40.27%</td>
|
||||
<td data-value="144" class="abs low">58/144</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="11" class="abs low">0/11</td>
|
||||
<td data-value="11.76" class="pct low">11.76%</td>
|
||||
<td data-value="85" class="abs low">10/85</td>
|
||||
<td data-value="40.27" class="pct low">40.27%</td>
|
||||
<td data-value="144" class="abs low">58/144</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/actions"><a href="lib/actions/index.html">lib/actions</a></td>
|
||||
<td data-value="10.71" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 10%"></div><div class="cover-empty" style="width: 90%"></div></div>
|
||||
</td>
|
||||
<td data-value="10.71" class="pct low">10.71%</td>
|
||||
<td data-value="28" class="abs low">3/28</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="2" class="abs low">0/2</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="12" class="abs low">0/12</td>
|
||||
<td data-value="10.71" class="pct low">10.71%</td>
|
||||
<td data-value="28" class="abs low">3/28</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/backup"><a href="lib/backup/index.html">lib/backup</a></td>
|
||||
<td data-value="8.79" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 8%"></div><div class="cover-empty" style="width: 92%"></div></div>
|
||||
</td>
|
||||
<td data-value="8.79" class="pct low">8.79%</td>
|
||||
<td data-value="91" class="abs low">8/91</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="11" class="abs low">0/11</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="27" class="abs low">0/27</td>
|
||||
<td data-value="9.09" class="pct low">9.09%</td>
|
||||
<td data-value="88" class="abs low">8/88</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/config"><a href="lib/config/index.html">lib/config</a></td>
|
||||
<td data-value="46.15" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 46%"></div><div class="cover-empty" style="width: 54%"></div></div>
|
||||
</td>
|
||||
<td data-value="46.15" class="pct low">46.15%</td>
|
||||
<td data-value="26" class="abs low">12/26</td>
|
||||
<td data-value="25" class="pct low">25%</td>
|
||||
<td data-value="8" class="abs low">2/8</td>
|
||||
<td data-value="20" class="pct low">20%</td>
|
||||
<td data-value="5" class="abs low">1/5</td>
|
||||
<td data-value="46.15" class="pct low">46.15%</td>
|
||||
<td data-value="26" class="abs low">12/26</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="lib/config/builder"><a href="lib/config/builder/index.html">lib/config/builder</a></td>
|
||||
<td data-value="84.61" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 84%"></div><div class="cover-empty" style="width: 16%"></div></div>
|
||||
</td>
|
||||
<td data-value="84.61" class="pct high">84.61%</td>
|
||||
<td data-value="117" class="abs high">99/117</td>
|
||||
<td data-value="55.17" class="pct medium">55.17%</td>
|
||||
<td data-value="29" class="abs medium">16/29</td>
|
||||
<td data-value="78.26" class="pct medium">78.26%</td>
|
||||
<td data-value="69" class="abs medium">54/69</td>
|
||||
<td data-value="84.34" class="pct high">84.34%</td>
|
||||
<td data-value="115" class="abs high">97/115</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/dependencies"><a href="lib/dependencies/index.html">lib/dependencies</a></td>
|
||||
<td data-value="9.67" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 9%"></div><div class="cover-empty" style="width: 91%"></div></div>
|
||||
</td>
|
||||
<td data-value="9.67" class="pct low">9.67%</td>
|
||||
<td data-value="93" class="abs low">9/93</td>
|
||||
<td data-value="1.78" class="pct low">1.78%</td>
|
||||
<td data-value="56" class="abs low">1/56</td>
|
||||
<td data-value="6.25" class="pct low">6.25%</td>
|
||||
<td data-value="32" class="abs low">2/32</td>
|
||||
<td data-value="10" class="pct low">10%</td>
|
||||
<td data-value="90" class="abs low">9/90</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file medium" data-value="lib/exver"><a href="lib/exver/index.html">lib/exver</a></td>
|
||||
<td data-value="71.73" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 71%"></div><div class="cover-empty" style="width: 29%"></div></div>
|
||||
</td>
|
||||
<td data-value="71.73" class="pct medium">71.73%</td>
|
||||
<td data-value="994" class="abs medium">713/994</td>
|
||||
<td data-value="63.29" class="pct medium">63.29%</td>
|
||||
<td data-value="395" class="abs medium">250/395</td>
|
||||
<td data-value="71.65" class="pct medium">71.65%</td>
|
||||
<td data-value="127" class="abs medium">91/127</td>
|
||||
<td data-value="71.77" class="pct medium">71.77%</td>
|
||||
<td data-value="946" class="abs medium">679/946</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/health"><a href="lib/health/index.html">lib/health</a></td>
|
||||
<td data-value="17.24" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 17%"></div><div class="cover-empty" style="width: 83%"></div></div>
|
||||
</td>
|
||||
<td data-value="17.24" class="pct low">17.24%</td>
|
||||
<td data-value="29" class="abs low">5/29</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="12" class="abs low">0/12</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="6" class="abs low">0/6</td>
|
||||
<td data-value="19.23" class="pct low">19.23%</td>
|
||||
<td data-value="26" class="abs low">5/26</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file medium" data-value="lib/health/checkFns"><a href="lib/health/checkFns/index.html">lib/health/checkFns</a></td>
|
||||
<td data-value="53.06" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 53%"></div><div class="cover-empty" style="width: 47%"></div></div>
|
||||
</td>
|
||||
<td data-value="53.06" class="pct medium">53.06%</td>
|
||||
<td data-value="49" class="abs medium">26/49</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="17" class="abs low">0/17</td>
|
||||
<td data-value="26.31" class="pct low">26.31%</td>
|
||||
<td data-value="19" class="abs low">5/19</td>
|
||||
<td data-value="50" class="pct medium">50%</td>
|
||||
<td data-value="44" class="abs medium">22/44</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/inits"><a href="lib/inits/index.html">lib/inits</a></td>
|
||||
<td data-value="20.68" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 20%"></div><div class="cover-empty" style="width: 80%"></div></div>
|
||||
</td>
|
||||
<td data-value="20.68" class="pct low">20.68%</td>
|
||||
<td data-value="29" class="abs low">6/29</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="6" class="abs low">0/6</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="11" class="abs low">0/11</td>
|
||||
<td data-value="20.68" class="pct low">20.68%</td>
|
||||
<td data-value="29" class="abs low">6/29</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/interfaces"><a href="lib/interfaces/index.html">lib/interfaces</a></td>
|
||||
<td data-value="22.44" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 22%"></div><div class="cover-empty" style="width: 78%"></div></div>
|
||||
</td>
|
||||
<td data-value="22.44" class="pct low">22.44%</td>
|
||||
<td data-value="49" class="abs low">11/49</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="24" class="abs low">0/24</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="13" class="abs low">0/13</td>
|
||||
<td data-value="22.22" class="pct low">22.22%</td>
|
||||
<td data-value="45" class="abs low">10/45</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/mainFn"><a href="lib/mainFn/index.html">lib/mainFn</a></td>
|
||||
<td data-value="15.78" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 15%"></div><div class="cover-empty" style="width: 85%"></div></div>
|
||||
</td>
|
||||
<td data-value="15.78" class="pct low">15.78%</td>
|
||||
<td data-value="228" class="abs low">36/228</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="38" class="abs low">0/38</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="77" class="abs low">0/77</td>
|
||||
<td data-value="15.16" class="pct low">15.16%</td>
|
||||
<td data-value="211" class="abs low">32/211</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/manifest"><a href="lib/manifest/index.html">lib/manifest</a></td>
|
||||
<td data-value="25" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 25%"></div><div class="cover-empty" style="width: 75%"></div></div>
|
||||
</td>
|
||||
<td data-value="25" class="pct low">25%</td>
|
||||
<td data-value="16" class="abs low">4/16</td>
|
||||
<td data-value="65.51" class="pct medium">65.51%</td>
|
||||
<td data-value="29" class="abs medium">19/29</td>
|
||||
<td data-value="20" class="pct low">20%</td>
|
||||
<td data-value="5" class="abs low">1/5</td>
|
||||
<td data-value="26.66" class="pct low">26.66%</td>
|
||||
<td data-value="15" class="abs low">4/15</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/store"><a href="lib/store/index.html">lib/store</a></td>
|
||||
<td data-value="35.71" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 35%"></div><div class="cover-empty" style="width: 65%"></div></div>
|
||||
</td>
|
||||
<td data-value="35.71" class="pct low">35.71%</td>
|
||||
<td data-value="28" class="abs low">10/28</td>
|
||||
<td data-value="20" class="pct low">20%</td>
|
||||
<td data-value="5" class="abs low">1/5</td>
|
||||
<td data-value="10" class="pct low">10%</td>
|
||||
<td data-value="10" class="abs low">1/10</td>
|
||||
<td data-value="32" class="pct low">32%</td>
|
||||
<td data-value="25" class="abs low">8/25</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="lib/test"><a href="lib/test/index.html">lib/test</a></td>
|
||||
<td data-value="100" class="pic high">
|
||||
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
||||
</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="9" class="abs high">9/9</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="9" class="abs high">9/9</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/trigger"><a href="lib/trigger/index.html">lib/trigger</a></td>
|
||||
<td data-value="30.61" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 30%"></div><div class="cover-empty" style="width: 70%"></div></div>
|
||||
</td>
|
||||
<td data-value="30.61" class="pct low">30.61%</td>
|
||||
<td data-value="49" class="abs low">15/49</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="5" class="abs low">0/5</td>
|
||||
<td data-value="40" class="pct low">40%</td>
|
||||
<td data-value="10" class="abs low">4/10</td>
|
||||
<td data-value="26.66" class="pct low">26.66%</td>
|
||||
<td data-value="45" class="abs low">12/45</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="lib/util"><a href="lib/util/index.html">lib/util</a></td>
|
||||
<td data-value="36.83" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 36%"></div><div class="cover-empty" style="width: 64%"></div></div>
|
||||
</td>
|
||||
<td data-value="36.83" class="pct low">36.83%</td>
|
||||
<td data-value="695" class="abs low">256/695</td>
|
||||
<td data-value="12.2" class="pct low">12.2%</td>
|
||||
<td data-value="213" class="abs low">26/213</td>
|
||||
<td data-value="17.96" class="pct low">17.96%</td>
|
||||
<td data-value="167" class="abs low">30/167</td>
|
||||
<td data-value="36.29" class="pct low">36.29%</td>
|
||||
<td data-value="642" class="abs low">233/642</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file medium" data-value="lib/version"><a href="lib/version/index.html">lib/version</a></td>
|
||||
<td data-value="62.82" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 62%"></div><div class="cover-empty" style="width: 38%"></div></div>
|
||||
</td>
|
||||
<td data-value="62.82" class="pct medium">62.82%</td>
|
||||
<td data-value="78" class="abs medium">49/78</td>
|
||||
<td data-value="51.35" class="pct medium">51.35%</td>
|
||||
<td data-value="37" class="abs medium">19/37</td>
|
||||
<td data-value="68.42" class="pct medium">68.42%</td>
|
||||
<td data-value="19" class="abs medium">13/19</td>
|
||||
<td data-value="63.63" class="pct medium">63.63%</td>
|
||||
<td data-value="77" class="abs medium">49/77</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="sorter.js"></script>
|
||||
<script src="block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="sorter.js"></script>
|
||||
<script src="block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for interfaces/Host.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../prettify.css" />
|
||||
<link rel="stylesheet" href="../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../index.html">All files</a> / <a href="index.html">interfaces</a> Host.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">22.22% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>6/27</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/18</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/7</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">24% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>6/25</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../index.html">All files</a> /
|
||||
<a href="index.html">interfaces</a> Host.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">22.22% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">6/27</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/18</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/7</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">24% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">6/25</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -647,21 +643,27 @@ export class MultiHost extends Host {
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for interfaces/Origin.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../prettify.css" />
|
||||
<link rel="stylesheet" href="../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../index.html">All files</a> / <a href="index.html">interfaces</a> Origin.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">6.25% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>1/16</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/6</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/4</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">6.25% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>1/16</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../index.html">All files</a> /
|
||||
<a href="index.html">interfaces</a> Origin.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">6.25% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">1/16</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/6</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/4</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">6.25% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">1/16</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -335,21 +331,27 @@ type BuildOptions = {
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,131 +1,196 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for interfaces</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../prettify.css" />
|
||||
<link rel="stylesheet" href="../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1><a href="../index.html">All files</a> interfaces</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">16.27% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>7/43</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/24</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/11</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">17.07% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>7/41</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">16.27% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">7/43</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/24</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/11</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">17.07% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">7/41</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file low" data-value="Host.ts">
|
||||
<a href="Host.ts.html">Host.ts</a>
|
||||
</td>
|
||||
<td data-value="22.22" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 22%"></div>
|
||||
<div class="cover-empty" style="width: 78%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="22.22" class="pct low">22.22%</td>
|
||||
<td data-value="27" class="abs low">6/27</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="18" class="abs low">0/18</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="7" class="abs low">0/7</td>
|
||||
<td data-value="24" class="pct low">24%</td>
|
||||
<td data-value="25" class="abs low">6/25</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="Origin.ts">
|
||||
<a href="Origin.ts.html">Origin.ts</a>
|
||||
</td>
|
||||
<td data-value="6.25" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 6%"></div>
|
||||
<div class="cover-empty" style="width: 94%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="6.25" class="pct low">6.25%</td>
|
||||
<td data-value="16" class="abs low">1/16</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="6" class="abs low">0/6</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="4" class="abs low">0/4</td>
|
||||
<td data-value="6.25" class="pct low">6.25%</td>
|
||||
<td data-value="16" class="abs low">1/16</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file low" data-value="Host.ts"><a href="Host.ts.html">Host.ts</a></td>
|
||||
<td data-value="22.22" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 22%"></div><div class="cover-empty" style="width: 78%"></div></div>
|
||||
</td>
|
||||
<td data-value="22.22" class="pct low">22.22%</td>
|
||||
<td data-value="27" class="abs low">6/27</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="18" class="abs low">0/18</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="7" class="abs low">0/7</td>
|
||||
<td data-value="24" class="pct low">24%</td>
|
||||
<td data-value="25" class="abs low">6/25</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="Origin.ts"><a href="Origin.ts.html">Origin.ts</a></td>
|
||||
<td data-value="6.25" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 6%"></div><div class="cover-empty" style="width: 94%"></div></div>
|
||||
</td>
|
||||
<td data-value="6.25" class="pct low">6.25%</td>
|
||||
<td data-value="16" class="abs low">1/16</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="6" class="abs low">0/6</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="4" class="abs low">0/4</td>
|
||||
<td data-value="6.25" class="pct low">6.25%</td>
|
||||
<td data-value="16" class="abs low">1/16</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-07-04T02:41:23.401Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/Dependency.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../prettify.css" />
|
||||
<link rel="stylesheet" href="../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../index.html">All files</a> / <a href="index.html">lib</a> Dependency.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">50% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>1/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/1</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">50% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>1/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../index.html">All files</a> /
|
||||
<a href="index.html">lib</a> Dependency.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">50% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">1/2</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/0</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/1</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">50% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">1/2</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line medium'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line medium"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -119,21 +115,27 @@ export class Dependency {
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/StartSdk.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../prettify.css" />
|
||||
<link rel="stylesheet" href="../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../index.html">All files</a> / <a href="index.html">lib</a> StartSdk.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">40.14% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>57/142</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/11</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">11.9% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>10/84</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">40.14% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>57/142</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../index.html">All files</a> /
|
||||
<a href="index.html">lib</a> StartSdk.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">40.14% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">57/142</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/11</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">11.9% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">10/84</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">40.14% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">57/142</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -2477,21 +2473,27 @@ function <span class="fstat-no" title="function not covered" >nullifyProperties_
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../sorter.js"></script>
|
||||
<script src="../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/actions/createAction.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/actions</a> createAction.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">11.76% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>2/17</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/7</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">11.76% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>2/17</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/actions</a> createAction.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">11.76% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">2/17</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/2</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/7</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">11.76% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">2/17</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -332,21 +328,27 @@ export class CreatedAction<
|
||||
export const createAction = CreatedAction.of
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,131 +1,196 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/actions</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1><a href="../../index.html">All files</a> lib/actions</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">10.71% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>3/28</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/12</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">10.71% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>3/28</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">10.71% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">3/28</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/2</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/12</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">10.71% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">3/28</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file low" data-value="createAction.ts">
|
||||
<a href="createAction.ts.html">createAction.ts</a>
|
||||
</td>
|
||||
<td data-value="11.76" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 11%"></div>
|
||||
<div class="cover-empty" style="width: 89%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="11.76" class="pct low">11.76%</td>
|
||||
<td data-value="17" class="abs low">2/17</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="2" class="abs low">0/2</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="7" class="abs low">0/7</td>
|
||||
<td data-value="11.76" class="pct low">11.76%</td>
|
||||
<td data-value="17" class="abs low">2/17</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="setupActions.ts">
|
||||
<a href="setupActions.ts.html">setupActions.ts</a>
|
||||
</td>
|
||||
<td data-value="9.09" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 9%"></div>
|
||||
<div class="cover-empty" style="width: 91%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="9.09" class="pct low">9.09%</td>
|
||||
<td data-value="11" class="abs low">1/11</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="5" class="abs low">0/5</td>
|
||||
<td data-value="9.09" class="pct low">9.09%</td>
|
||||
<td data-value="11" class="abs low">1/11</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file low" data-value="createAction.ts"><a href="createAction.ts.html">createAction.ts</a></td>
|
||||
<td data-value="11.76" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 11%"></div><div class="cover-empty" style="width: 89%"></div></div>
|
||||
</td>
|
||||
<td data-value="11.76" class="pct low">11.76%</td>
|
||||
<td data-value="17" class="abs low">2/17</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="2" class="abs low">0/2</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="7" class="abs low">0/7</td>
|
||||
<td data-value="11.76" class="pct low">11.76%</td>
|
||||
<td data-value="17" class="abs low">2/17</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="setupActions.ts"><a href="setupActions.ts.html">setupActions.ts</a></td>
|
||||
<td data-value="9.09" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 9%"></div><div class="cover-empty" style="width: 91%"></div></div>
|
||||
</td>
|
||||
<td data-value="9.09" class="pct low">9.09%</td>
|
||||
<td data-value="11" class="abs low">1/11</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="5" class="abs low">0/5</td>
|
||||
<td data-value="9.09" class="pct low">9.09%</td>
|
||||
<td data-value="11" class="abs low">1/11</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/actions/setupActions.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/actions</a> setupActions.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">9.09% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>1/11</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/5</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">9.09% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>1/11</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/actions</a> setupActions.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">9.09% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">1/11</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/0</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/5</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">9.09% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">1/11</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -152,21 +148,27 @@ export function <span class="fstat-no" title="function not covered" >setupAction
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/backup/Backups.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/backup</a> Backups.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">8.21% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>6/73</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/9</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/22</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">8.57% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>6/70</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/backup</a> Backups.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">8.21% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">6/73</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/9</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/22</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">8.57% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">6/70</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -692,21 +688,27 @@ async function <span class="fstat-no" title="function not covered" >runRsync(</s
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,131 +1,196 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/backup</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1><a href="../../index.html">All files</a> lib/backup</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">8.79% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>8/91</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/11</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/27</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">9.09% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>8/88</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">8.79% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">8/91</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/11</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/27</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">9.09% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">8/88</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file low" data-value="Backups.ts">
|
||||
<a href="Backups.ts.html">Backups.ts</a>
|
||||
</td>
|
||||
<td data-value="8.21" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 8%"></div>
|
||||
<div class="cover-empty" style="width: 92%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="8.21" class="pct low">8.21%</td>
|
||||
<td data-value="73" class="abs low">6/73</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="9" class="abs low">0/9</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="22" class="abs low">0/22</td>
|
||||
<td data-value="8.57" class="pct low">8.57%</td>
|
||||
<td data-value="70" class="abs low">6/70</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="setupBackups.ts">
|
||||
<a href="setupBackups.ts.html">setupBackups.ts</a>
|
||||
</td>
|
||||
<td data-value="11.11" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 11%"></div>
|
||||
<div class="cover-empty" style="width: 89%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="11.11" class="pct low">11.11%</td>
|
||||
<td data-value="18" class="abs low">2/18</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="2" class="abs low">0/2</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="5" class="abs low">0/5</td>
|
||||
<td data-value="11.11" class="pct low">11.11%</td>
|
||||
<td data-value="18" class="abs low">2/18</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file low" data-value="Backups.ts"><a href="Backups.ts.html">Backups.ts</a></td>
|
||||
<td data-value="8.21" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 8%"></div><div class="cover-empty" style="width: 92%"></div></div>
|
||||
</td>
|
||||
<td data-value="8.21" class="pct low">8.21%</td>
|
||||
<td data-value="73" class="abs low">6/73</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="9" class="abs low">0/9</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="22" class="abs low">0/22</td>
|
||||
<td data-value="8.57" class="pct low">8.57%</td>
|
||||
<td data-value="70" class="abs low">6/70</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="setupBackups.ts"><a href="setupBackups.ts.html">setupBackups.ts</a></td>
|
||||
<td data-value="11.11" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 11%"></div><div class="cover-empty" style="width: 89%"></div></div>
|
||||
</td>
|
||||
<td data-value="11.11" class="pct low">11.11%</td>
|
||||
<td data-value="18" class="abs low">2/18</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="2" class="abs low">0/2</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="5" class="abs low">0/5</td>
|
||||
<td data-value="11.11" class="pct low">11.11%</td>
|
||||
<td data-value="18" class="abs low">2/18</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/backup/setupBackups.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/backup</a> setupBackups.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">11.11% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>2/18</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/5</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">11.11% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>2/18</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/backup</a> setupBackups.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">11.11% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">2/18</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/2</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/5</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">11.11% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">2/18</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -200,21 +196,27 @@ export function <span class="fstat-no" title="function not covered" >setupBackup
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/config/builder/config.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../../index.html">All files</a> / <a href="index.html">lib/config/builder</a> config.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">92.85% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>13/14</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">75% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>3/4</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">92.85% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>13/14</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../../index.html">All files</a> /
|
||||
<a href="index.html">lib/config/builder</a> config.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">92.85% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">13/14</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/0</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">75% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">3/4</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">92.85% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">13/14</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -476,21 +472,27 @@ export class Config<Type extends Record<string, any>, Store = never>
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../../sorter.js"></script>
|
||||
<script src="../../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../../sorter.js"></script>
|
||||
<script src="../../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,161 +1,236 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/config/builder</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1><a href="../../../index.html">All files</a> lib/config/builder</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">84.61% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>99/117</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">55.17% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>16/29</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">78.26% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>54/69</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">84.34% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>97/115</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">84.61% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">99/117</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">55.17% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">16/29</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">78.26% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">54/69</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">84.34% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">97/115</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file high" data-value="config.ts">
|
||||
<a href="config.ts.html">config.ts</a>
|
||||
</td>
|
||||
<td data-value="92.85" class="pic high">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 92%"></div>
|
||||
<div class="cover-empty" style="width: 8%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="92.85" class="pct high">92.85%</td>
|
||||
<td data-value="14" class="abs high">13/14</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="75" class="pct medium">75%</td>
|
||||
<td data-value="4" class="abs medium">3/4</td>
|
||||
<td data-value="92.85" class="pct high">92.85%</td>
|
||||
<td data-value="14" class="abs high">13/14</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="list.ts">
|
||||
<a href="list.ts.html">list.ts</a>
|
||||
</td>
|
||||
<td data-value="95" class="pic high">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 95%"></div>
|
||||
<div class="cover-empty" style="width: 5%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="95" class="pct high">95%</td>
|
||||
<td data-value="20" class="abs high">19/20</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="87.5" class="pct high">87.5%</td>
|
||||
<td data-value="8" class="abs high">7/8</td>
|
||||
<td data-value="95" class="pct high">95%</td>
|
||||
<td data-value="20" class="abs high">19/20</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file medium" data-value="value.ts">
|
||||
<a href="value.ts.html">value.ts</a>
|
||||
</td>
|
||||
<td data-value="78.57" class="pic medium">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 78%"></div>
|
||||
<div class="cover-empty" style="width: 22%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="78.57" class="pct medium">78.57%</td>
|
||||
<td data-value="70" class="abs medium">55/70</td>
|
||||
<td data-value="55.17" class="pct medium">55.17%</td>
|
||||
<td data-value="29" class="abs medium">16/29</td>
|
||||
<td data-value="76.92" class="pct medium">76.92%</td>
|
||||
<td data-value="52" class="abs medium">40/52</td>
|
||||
<td data-value="77.94" class="pct medium">77.94%</td>
|
||||
<td data-value="68" class="abs medium">53/68</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="variants.ts">
|
||||
<a href="variants.ts.html">variants.ts</a>
|
||||
</td>
|
||||
<td data-value="92.3" class="pic high">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 92%"></div>
|
||||
<div class="cover-empty" style="width: 8%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="92.3" class="pct high">92.3%</td>
|
||||
<td data-value="13" class="abs high">12/13</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="80" class="pct high">80%</td>
|
||||
<td data-value="5" class="abs high">4/5</td>
|
||||
<td data-value="92.3" class="pct high">92.3%</td>
|
||||
<td data-value="13" class="abs high">12/13</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file high" data-value="config.ts"><a href="config.ts.html">config.ts</a></td>
|
||||
<td data-value="92.85" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
|
||||
</td>
|
||||
<td data-value="92.85" class="pct high">92.85%</td>
|
||||
<td data-value="14" class="abs high">13/14</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="75" class="pct medium">75%</td>
|
||||
<td data-value="4" class="abs medium">3/4</td>
|
||||
<td data-value="92.85" class="pct high">92.85%</td>
|
||||
<td data-value="14" class="abs high">13/14</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="list.ts"><a href="list.ts.html">list.ts</a></td>
|
||||
<td data-value="95" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
|
||||
</td>
|
||||
<td data-value="95" class="pct high">95%</td>
|
||||
<td data-value="20" class="abs high">19/20</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="87.5" class="pct high">87.5%</td>
|
||||
<td data-value="8" class="abs high">7/8</td>
|
||||
<td data-value="95" class="pct high">95%</td>
|
||||
<td data-value="20" class="abs high">19/20</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file medium" data-value="value.ts"><a href="value.ts.html">value.ts</a></td>
|
||||
<td data-value="78.57" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div>
|
||||
</td>
|
||||
<td data-value="78.57" class="pct medium">78.57%</td>
|
||||
<td data-value="70" class="abs medium">55/70</td>
|
||||
<td data-value="55.17" class="pct medium">55.17%</td>
|
||||
<td data-value="29" class="abs medium">16/29</td>
|
||||
<td data-value="76.92" class="pct medium">76.92%</td>
|
||||
<td data-value="52" class="abs medium">40/52</td>
|
||||
<td data-value="77.94" class="pct medium">77.94%</td>
|
||||
<td data-value="68" class="abs medium">53/68</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="variants.ts"><a href="variants.ts.html">variants.ts</a></td>
|
||||
<td data-value="92.3" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
|
||||
</td>
|
||||
<td data-value="92.3" class="pct high">92.3%</td>
|
||||
<td data-value="13" class="abs high">12/13</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="80" class="pct high">80%</td>
|
||||
<td data-value="5" class="abs high">4/5</td>
|
||||
<td data-value="92.3" class="pct high">92.3%</td>
|
||||
<td data-value="13" class="abs high">12/13</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../../sorter.js"></script>
|
||||
<script src="../../../block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../../sorter.js"></script>
|
||||
<script src="../../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/config/builder/list.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../../index.html">All files</a> / <a href="index.html">lib/config/builder</a> list.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">95% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>19/20</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">87.5% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>7/8</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">95% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>19/20</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../../index.html">All files</a> /
|
||||
<a href="index.html">lib/config/builder</a> list.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">95% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">19/20</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/0</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">87.5% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">7/8</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">95% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">19/20</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -629,21 +625,27 @@ export class List<Type, Store> {
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../../sorter.js"></script>
|
||||
<script src="../../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../../sorter.js"></script>
|
||||
<script src="../../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/config/builder/value.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../../index.html">All files</a> / <a href="index.html">lib/config/builder</a> value.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">78.57% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>55/70</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">55.17% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>16/29</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">76.92% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>40/52</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">77.94% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>53/68</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../../index.html">All files</a> /
|
||||
<a href="index.html">lib/config/builder</a> value.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">78.57% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">55/70</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">55.17% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">16/29</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">76.92% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">40/52</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">77.94% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">53/68</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line medium'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line medium"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -2414,21 +2410,27 @@ export class Value<Type, Store> {
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../../sorter.js"></script>
|
||||
<script src="../../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../../sorter.js"></script>
|
||||
<script src="../../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/config/builder/variants.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../../index.html">All files</a> / <a href="index.html">lib/config/builder</a> variants.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">92.3% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>12/13</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">80% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>4/5</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">92.3% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>12/13</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../../index.html">All files</a> /
|
||||
<a href="index.html">lib/config/builder</a> variants.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">92.3% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">12/13</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/0</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">80% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">4/5</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">92.3% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">12/13</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -425,21 +421,27 @@ export class Variants<Type, Store> {
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../../sorter.js"></script>
|
||||
<script src="../../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../../sorter.js"></script>
|
||||
<script src="../../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/config/configConstants.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/config</a> configConstants.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">77.77% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>7/9</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/1</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">77.77% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>7/9</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/config</a> configConstants.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">77.77% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">7/9</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/2</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/1</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">77.77% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">7/9</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line medium'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line medium"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -308,21 +304,27 @@ export const smtpConfig = Value.filteredUnion(
|
||||
)
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/config/configDependencies.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/config</a> configDependencies.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">40% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>2/5</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/3</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">25% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>1/4</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/config</a> configDependencies.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">40% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">2/5</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/0</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/3</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">25% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">1/4</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -143,21 +139,27 @@ export const configDependenciesSet = <span class="fstat-no" title="function not
|
||||
})
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-07T17:49:46.694Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-07T17:49:46.694Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/config/configTypes.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/config</a> configTypes.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>2/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>2/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>1/1</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>2/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/config</a> configTypes.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">2/2</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">2/2</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">1/1</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">2/2</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -881,21 +877,27 @@ export function isValueSpecListOf<S extends ListValueSpecType>(
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,146 +1,216 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/config</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1><a href="../../index.html">All files</a> lib/config</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">46.15% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>12/26</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">25% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>2/8</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">20% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>1/5</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">46.15% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>12/26</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">46.15% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">12/26</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">25% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">2/8</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">20% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">1/5</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">46.15% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">12/26</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file medium" data-value="configConstants.ts">
|
||||
<a href="configConstants.ts.html">configConstants.ts</a>
|
||||
</td>
|
||||
<td data-value="77.77" class="pic medium">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 77%"></div>
|
||||
<div class="cover-empty" style="width: 23%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="77.77" class="pct medium">77.77%</td>
|
||||
<td data-value="9" class="abs medium">7/9</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="2" class="abs low">0/2</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="1" class="abs low">0/1</td>
|
||||
<td data-value="77.77" class="pct medium">77.77%</td>
|
||||
<td data-value="9" class="abs medium">7/9</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="configTypes.ts">
|
||||
<a href="configTypes.ts.html">configTypes.ts</a>
|
||||
</td>
|
||||
<td data-value="100" class="pic high">
|
||||
<div class="chart">
|
||||
<div class="cover-fill cover-full" style="width: 100%"></div>
|
||||
<div class="cover-empty" style="width: 0%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="1" class="abs high">1/1</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="setupConfig.ts">
|
||||
<a href="setupConfig.ts.html">setupConfig.ts</a>
|
||||
</td>
|
||||
<td data-value="20" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 20%"></div>
|
||||
<div class="cover-empty" style="width: 80%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="20" class="pct low">20%</td>
|
||||
<td data-value="15" class="abs low">3/15</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="4" class="abs low">0/4</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="3" class="abs low">0/3</td>
|
||||
<td data-value="20" class="pct low">20%</td>
|
||||
<td data-value="15" class="abs low">3/15</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file medium" data-value="configConstants.ts"><a href="configConstants.ts.html">configConstants.ts</a></td>
|
||||
<td data-value="77.77" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
|
||||
</td>
|
||||
<td data-value="77.77" class="pct medium">77.77%</td>
|
||||
<td data-value="9" class="abs medium">7/9</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="2" class="abs low">0/2</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="1" class="abs low">0/1</td>
|
||||
<td data-value="77.77" class="pct medium">77.77%</td>
|
||||
<td data-value="9" class="abs medium">7/9</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="configTypes.ts"><a href="configTypes.ts.html">configTypes.ts</a></td>
|
||||
<td data-value="100" class="pic high">
|
||||
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
||||
</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="1" class="abs high">1/1</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="setupConfig.ts"><a href="setupConfig.ts.html">setupConfig.ts</a></td>
|
||||
<td data-value="20" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 20%"></div><div class="cover-empty" style="width: 80%"></div></div>
|
||||
</td>
|
||||
<td data-value="20" class="pct low">20%</td>
|
||||
<td data-value="15" class="abs low">3/15</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="4" class="abs low">0/4</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="3" class="abs low">0/3</td>
|
||||
<td data-value="20" class="pct low">20%</td>
|
||||
<td data-value="15" class="abs low">3/15</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/config/setupConfig.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/config</a> setupConfig.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">20% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>3/15</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/4</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/3</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">20% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>3/15</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/config</a> setupConfig.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">20% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">3/15</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/4</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/3</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">20% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">3/15</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -326,21 +322,27 @@ export function <span class="fstat-no" title="function not covered" >setupConfig
|
||||
export default setupConfig
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/dependencies/DependencyConfig.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/dependencies</a> DependencyConfig.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">71.42% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>5/7</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">33.33% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>1/3</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">33.33% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>1/3</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">71.42% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>5/7</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/dependencies</a> DependencyConfig.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">71.42% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">5/7</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">33.33% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">1/3</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">33.33% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">1/3</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">71.42% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">5/7</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line medium'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line medium"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -182,21 +178,27 @@ export class DependencyConfig<
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/dependencies/dependencies.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/dependencies</a> dependencies.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">2.38% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>2/84</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/53</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/28</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">2.46% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>2/81</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/dependencies</a> dependencies.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">2.38% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">2/84</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/53</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">0/28</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">2.46% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">2/81</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -683,21 +679,27 @@ export async function <span class="fstat-no" title="function not covered" >check
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,146 +1,218 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/dependencies</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1><a href="../../index.html">All files</a> lib/dependencies</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">9.67% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>9/93</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">1.78% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>1/56</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">6.25% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>2/32</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">10% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>9/90</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">9.67% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">9/93</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">1.78% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">1/56</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">6.25% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">2/32</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">10% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">9/90</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line low"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file medium" data-value="DependencyConfig.ts">
|
||||
<a href="DependencyConfig.ts.html">DependencyConfig.ts</a>
|
||||
</td>
|
||||
<td data-value="71.42" class="pic medium">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 71%"></div>
|
||||
<div class="cover-empty" style="width: 29%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="71.42" class="pct medium">71.42%</td>
|
||||
<td data-value="7" class="abs medium">5/7</td>
|
||||
<td data-value="33.33" class="pct low">33.33%</td>
|
||||
<td data-value="3" class="abs low">1/3</td>
|
||||
<td data-value="33.33" class="pct low">33.33%</td>
|
||||
<td data-value="3" class="abs low">1/3</td>
|
||||
<td data-value="71.42" class="pct medium">71.42%</td>
|
||||
<td data-value="7" class="abs medium">5/7</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="dependencies.ts">
|
||||
<a href="dependencies.ts.html">dependencies.ts</a>
|
||||
</td>
|
||||
<td data-value="2.38" class="pic low">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 2%"></div>
|
||||
<div class="cover-empty" style="width: 98%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="2.38" class="pct low">2.38%</td>
|
||||
<td data-value="84" class="abs low">2/84</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="53" class="abs low">0/53</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="28" class="abs low">0/28</td>
|
||||
<td data-value="2.46" class="pct low">2.46%</td>
|
||||
<td data-value="81" class="abs low">2/81</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="setupDependencyConfig.ts">
|
||||
<a href="setupDependencyConfig.ts.html"
|
||||
>setupDependencyConfig.ts</a
|
||||
>
|
||||
</td>
|
||||
<td data-value="100" class="pic high">
|
||||
<div class="chart">
|
||||
<div class="cover-fill cover-full" style="width: 100%"></div>
|
||||
<div class="cover-empty" style="width: 0%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="1" class="abs high">1/1</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file medium" data-value="DependencyConfig.ts"><a href="DependencyConfig.ts.html">DependencyConfig.ts</a></td>
|
||||
<td data-value="71.42" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 71%"></div><div class="cover-empty" style="width: 29%"></div></div>
|
||||
</td>
|
||||
<td data-value="71.42" class="pct medium">71.42%</td>
|
||||
<td data-value="7" class="abs medium">5/7</td>
|
||||
<td data-value="33.33" class="pct low">33.33%</td>
|
||||
<td data-value="3" class="abs low">1/3</td>
|
||||
<td data-value="33.33" class="pct low">33.33%</td>
|
||||
<td data-value="3" class="abs low">1/3</td>
|
||||
<td data-value="71.42" class="pct medium">71.42%</td>
|
||||
<td data-value="7" class="abs medium">5/7</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="dependencies.ts"><a href="dependencies.ts.html">dependencies.ts</a></td>
|
||||
<td data-value="2.38" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 2%"></div><div class="cover-empty" style="width: 98%"></div></div>
|
||||
</td>
|
||||
<td data-value="2.38" class="pct low">2.38%</td>
|
||||
<td data-value="84" class="abs low">2/84</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="53" class="abs low">0/53</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="28" class="abs low">0/28</td>
|
||||
<td data-value="2.46" class="pct low">2.46%</td>
|
||||
<td data-value="81" class="abs low">2/81</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="setupDependencyConfig.ts"><a href="setupDependencyConfig.ts.html">setupDependencyConfig.ts</a></td>
|
||||
<td data-value="100" class="pic high">
|
||||
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
||||
</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="1" class="abs high">1/1</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,66 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>Code coverage report for lib/dependencies/setupDependencyConfig.ts</title>
|
||||
<head>
|
||||
<title>
|
||||
Code coverage report for lib/dependencies/setupDependencyConfig.ts
|
||||
</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/dependencies</a> setupDependencyConfig.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>2/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>1/1</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>2/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/dependencies</a> setupDependencyConfig.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">2/2</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/0</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">1/1</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">2/2</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -131,21 +129,27 @@ export function setupDependencyConfig<
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,66 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>Code coverage report for lib/dependencyConfig/DependencyConfig.ts</title>
|
||||
<head>
|
||||
<title>
|
||||
Code coverage report for lib/dependencyConfig/DependencyConfig.ts
|
||||
</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/dependencyConfig</a> DependencyConfig.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">71.42% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>5/7</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">33.33% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>1/3</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">33.33% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>1/3</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">71.42% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>5/7</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/dependencyConfig</a> DependencyConfig.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">71.42% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">5/7</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">33.33% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">1/3</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">33.33% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">1/3</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">71.42% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">5/7</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line medium'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line medium"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -197,21 +195,27 @@ export class DependencyConfig<
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-07T17:49:46.694Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-07T17:49:46.694Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,131 +1,198 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/dependencyConfig</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1><a href="../../index.html">All files</a> lib/dependencyConfig</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">77.77% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>7/9</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">33.33% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>1/3</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">50% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>2/4</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">77.77% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>7/9</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">77.77% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">7/9</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">33.33% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">1/3</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">50% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">2/4</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">77.77% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">7/9</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line medium"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file medium" data-value="DependencyConfig.ts">
|
||||
<a href="DependencyConfig.ts.html">DependencyConfig.ts</a>
|
||||
</td>
|
||||
<td data-value="71.42" class="pic medium">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 71%"></div>
|
||||
<div class="cover-empty" style="width: 29%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="71.42" class="pct medium">71.42%</td>
|
||||
<td data-value="7" class="abs medium">5/7</td>
|
||||
<td data-value="33.33" class="pct low">33.33%</td>
|
||||
<td data-value="3" class="abs low">1/3</td>
|
||||
<td data-value="33.33" class="pct low">33.33%</td>
|
||||
<td data-value="3" class="abs low">1/3</td>
|
||||
<td data-value="71.42" class="pct medium">71.42%</td>
|
||||
<td data-value="7" class="abs medium">5/7</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="setupDependencyConfig.ts">
|
||||
<a href="setupDependencyConfig.ts.html"
|
||||
>setupDependencyConfig.ts</a
|
||||
>
|
||||
</td>
|
||||
<td data-value="100" class="pic high">
|
||||
<div class="chart">
|
||||
<div class="cover-fill cover-full" style="width: 100%"></div>
|
||||
<div class="cover-empty" style="width: 0%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="1" class="abs high">1/1</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line medium'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file medium" data-value="DependencyConfig.ts"><a href="DependencyConfig.ts.html">DependencyConfig.ts</a></td>
|
||||
<td data-value="71.42" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 71%"></div><div class="cover-empty" style="width: 29%"></div></div>
|
||||
</td>
|
||||
<td data-value="71.42" class="pct medium">71.42%</td>
|
||||
<td data-value="7" class="abs medium">5/7</td>
|
||||
<td data-value="33.33" class="pct low">33.33%</td>
|
||||
<td data-value="3" class="abs low">1/3</td>
|
||||
<td data-value="33.33" class="pct low">33.33%</td>
|
||||
<td data-value="3" class="abs low">1/3</td>
|
||||
<td data-value="71.42" class="pct medium">71.42%</td>
|
||||
<td data-value="7" class="abs medium">5/7</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="setupDependencyConfig.ts"><a href="setupDependencyConfig.ts.html">setupDependencyConfig.ts</a></td>
|
||||
<td data-value="100" class="pic high">
|
||||
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
||||
</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="1" class="abs high">1/1</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-07T17:49:46.694Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-07T17:49:46.694Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,66 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>Code coverage report for lib/dependencyConfig/setupDependencyConfig.ts</title>
|
||||
<head>
|
||||
<title>
|
||||
Code coverage report for lib/dependencyConfig/setupDependencyConfig.ts
|
||||
</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/dependencyConfig</a> setupDependencyConfig.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>2/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>1/1</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>2/2</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/dependencyConfig</a> setupDependencyConfig.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">2/2</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">0/0</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">1/1</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">2/2</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -131,21 +129,27 @@ export function setupDependencyConfig<
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-07T17:49:46.694Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-07T17:49:46.694Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,116 +1,176 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/emverLite</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1><a href="../../index.html">All files</a> lib/emverLite</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">96.99% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>129/133</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">91.89% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>34/37</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">97.56% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>40/41</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">97.65% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>125/128</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">96.99% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">129/133</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">91.89% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">34/37</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">97.56% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">40/41</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">97.65% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">125/128</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">
|
||||
File
|
||||
</th>
|
||||
<th
|
||||
data-col="pic"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
data-html="true"
|
||||
class="pic"
|
||||
></th>
|
||||
<th
|
||||
data-col="statements"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Statements
|
||||
</th>
|
||||
<th
|
||||
data-col="statements_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="branches"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Branches
|
||||
</th>
|
||||
<th
|
||||
data-col="branches_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="functions"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Functions
|
||||
</th>
|
||||
<th
|
||||
data-col="functions_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
<th
|
||||
data-col="lines"
|
||||
data-type="number"
|
||||
data-fmt="pct"
|
||||
class="pct"
|
||||
>
|
||||
Lines
|
||||
</th>
|
||||
<th
|
||||
data-col="lines_raw"
|
||||
data-type="number"
|
||||
data-fmt="html"
|
||||
class="abs"
|
||||
></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="file high" data-value="mod.ts">
|
||||
<a href="mod.ts.html">mod.ts</a>
|
||||
</td>
|
||||
<td data-value="96.99" class="pic high">
|
||||
<div class="chart">
|
||||
<div class="cover-fill" style="width: 96%"></div>
|
||||
<div class="cover-empty" style="width: 4%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-value="96.99" class="pct high">96.99%</td>
|
||||
<td data-value="133" class="abs high">129/133</td>
|
||||
<td data-value="91.89" class="pct high">91.89%</td>
|
||||
<td data-value="37" class="abs high">34/37</td>
|
||||
<td data-value="97.56" class="pct high">97.56%</td>
|
||||
<td data-value="41" class="abs high">40/41</td>
|
||||
<td data-value="97.65" class="pct high">97.65%</td>
|
||||
<td data-value="128" class="abs high">125/128</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
||||
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
||||
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
||||
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
||||
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
||||
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
||||
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file high" data-value="mod.ts"><a href="mod.ts.html">mod.ts</a></td>
|
||||
<td data-value="96.99" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
|
||||
</td>
|
||||
<td data-value="96.99" class="pct high">96.99%</td>
|
||||
<td data-value="133" class="abs high">129/133</td>
|
||||
<td data-value="91.89" class="pct high">91.89%</td>
|
||||
<td data-value="37" class="abs high">34/37</td>
|
||||
<td data-value="97.56" class="pct high">97.56%</td>
|
||||
<td data-value="41" class="abs high">40/41</td>
|
||||
<td data-value="97.65" class="pct high">97.65%</td>
|
||||
<td data-value="128" class="abs high">125/128</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-07T17:49:46.694Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-07T17:49:46.694Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/emverLite/mod.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/emverLite</a> mod.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">96.99% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>129/133</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">91.89% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>34/37</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">97.56% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>40/41</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">97.65% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>125/128</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/emverLite</a> mod.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">96.99% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">129/133</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">91.89% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">34/37</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">97.56% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">40/41</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">97.65% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">125/128</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line high'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line high"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -1034,21 +1030,27 @@ export class Checker {
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-07T17:49:46.694Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-07T17:49:46.694Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,68 +1,64 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<head>
|
||||
<title>Code coverage report for lib/exver/exver.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
<style type="text/css">
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1><a href="../../index.html">All files</a> / <a href="index.html">lib/exver</a> exver.ts</h1>
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">73.61% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>611/830</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">62.5% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>185/296</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">69.31% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>61/88</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">73.76% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>582/789</span>
|
||||
</div>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="pad1">
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> /
|
||||
<a href="index.html">lib/exver</a> exver.ts
|
||||
</h1>
|
||||
<div class="clearfix">
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">73.61% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class="fraction">611/830</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">62.5% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class="fraction">185/296</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">69.31% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class="fraction">61/88</span>
|
||||
</div>
|
||||
|
||||
<div class="fl pad1y space-right2">
|
||||
<span class="strong">73.76% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class="fraction">582/789</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
||||
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
<template id="filterTemplate">
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch">
|
||||
</div>
|
||||
<div class="quiet">
|
||||
Filter:
|
||||
<input oninput="onInput()" type="search" id="fileSearch" />
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line medium'></div>
|
||||
<pre><table class="coverage">
|
||||
</div>
|
||||
<div class="status-line medium"></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
@@ -7586,21 +7582,27 @@ export type Digit = number;
|
||||
export type _ = string[];
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
<div class="push"></div>
|
||||
<!-- for sticky footer -->
|
||||
</div>
|
||||
<!-- /wrapper -->
|
||||
<div class="footer quiet pad2 space-top1 center small">
|
||||
Code coverage generated by
|
||||
<a
|
||||
href="https://istanbul.js.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>istanbul</a
|
||||
>
|
||||
at 2024-08-28T21:46:45.516Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
prettyPrint();
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user