diff --git a/.github/actions/config_cli_tools/action.yaml b/.github/actions/config_cli_tools/action.yaml
index ee9ed0d..a2ee897 100644
--- a/.github/actions/config_cli_tools/action.yaml
+++ b/.github/actions/config_cli_tools/action.yaml
@@ -30,3 +30,11 @@ runs:
smoke_test: "${binary} --version"
tarball_binary_path: "${binary}"
download_url: 'https://github.com/auth0/auth0-cli/releases/download/v${version}/auth0-cli_${version}_Linux_x86_64.tar.gz'
+
+ - uses: giantswarm/install-binary-action@v1
+ with:
+ binary: 'pulumi'
+ version: '3.59.0'
+ smoke_test: "${binary} version"
+ tarball_binary_path: "${binary}"
+ download_url: 'https://get.pulumi.com/releases/sdk/pulumi-v${version}-linux-x64.tar.gz'
\ No newline at end of file
diff --git a/.github/workflows/delete_resources.yaml b/.github/workflows/delete_resources.yaml
index a947541..30cf892 100644
--- a/.github/workflows/delete_resources.yaml
+++ b/.github/workflows/delete_resources.yaml
@@ -47,9 +47,10 @@ jobs:
with:
google_workload_identity_provider: ${{ secrets.GOOGLE_WORKLOAD_IDENTITY_PROVIDER }}
google_service_account: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }}
- - run: ./deploy/run-ansible.sh src/delete.yml
+ - run: ./App.Deploy/deploy.sh rm
env:
APP_ENVIRONMENT: ${{ inputs.environment }}
+ PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
GOOGLE_REGION: ${{ secrets.GOOGLE_REGION }}
GOOGLE_PROJECT_ID: ${{ secrets.GOOGLE_PROJECT_ID }}
MONGODB_ATLAS_PUBLIC_KEY: ${{ secrets.MONGODB_ATLAS_PUBLIC_KEY }}
diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml
index 0ab40b4..fa423b4 100644
--- a/.github/workflows/deploy.yaml
+++ b/.github/workflows/deploy.yaml
@@ -54,13 +54,6 @@ jobs:
deployments: write
steps:
- uses: actions/checkout@v3
- - uses: haya14busa/action-cond@v1
- id: environment_url
- with:
- cond: ${{ inputs.environment == 'main' }}
- # When urls change also change App.Lib.Configuration.DevEnvConfigurationProvider.GetFrontendUrl
- if_true: "https://${{ secrets.GOOGLE_PROJECT_ID }}.pages.dev"
- if_false: "https://${{ inputs.environment }}.${{ secrets.GOOGLE_PROJECT_ID }}.pages.dev"
- uses: bobheadxi/deployments@v1
if: ${{ inputs.register_deployment }}
id: deployment
@@ -72,11 +65,11 @@ jobs:
with:
google_workload_identity_provider: ${{ secrets.GOOGLE_WORKLOAD_IDENTITY_PROVIDER }}
google_service_account: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }}
- - run: ./deploy/run-ansible.sh src/deploy.yml
+ - run: ./App.Deploy/deploy.sh up
env:
APP_TAG: ${{ inputs.tag }}
APP_ENVIRONMENT: ${{ inputs.environment }}
- APP_FRONTEND: ${{ steps.environment_url.outputs.value }}
+ PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
GOOGLE_REGION: ${{ secrets.GOOGLE_REGION }}
GOOGLE_PROJECT_ID: ${{ secrets.GOOGLE_PROJECT_ID }}
diff --git a/.github/workflows/test_quality.yaml b/.github/workflows/test_quality.yaml
index 9a2b1c0..0ad786b 100644
--- a/.github/workflows/test_quality.yaml
+++ b/.github/workflows/test_quality.yaml
@@ -15,12 +15,6 @@ jobs:
dotnet-version: 7.0
- run: dotnet format --verify-no-changes
- test_quality_ansible:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- - uses: ansible/ansible-lint-action@v6
-
test_quality_frontend_web_typescript:
runs-on: ubuntu-latest
steps:
@@ -37,8 +31,7 @@ jobs:
runs-on: ubuntu-latest
needs:
- test_quality_dotnet
- - test_quality_ansible
- test_quality_frontend_web_typescript
if: ${{ always() }}
steps:
- - run: "[[ '${{ needs.test_quality_dotnet.result }}' == 'success' && '${{ needs.test_quality_ansible.result }}' == 'success' && '${{ needs.test_quality_frontend_web_typescript.result }}' == 'success' ]]"
\ No newline at end of file
+ - run: "[[ '${{ needs.test_quality_dotnet.result }}' == 'success' && '${{ needs.test_quality_frontend_web_typescript.result }}' == 'success' ]]"
\ No newline at end of file
diff --git a/deploy/.env b/App.Deploy/.env
similarity index 100%
rename from deploy/.env
rename to App.Deploy/.env
diff --git a/deploy/.env.local.sample b/App.Deploy/.env.local.sample
similarity index 100%
rename from deploy/.env.local.sample
rename to App.Deploy/.env.local.sample
diff --git a/App.Deploy/.gitignore b/App.Deploy/.gitignore
new file mode 100644
index 0000000..5dec25e
--- /dev/null
+++ b/App.Deploy/.gitignore
@@ -0,0 +1,2 @@
+/node_modules
+Pulumi.*.yaml
\ No newline at end of file
diff --git a/App.Deploy/App.Deploy.csproj b/App.Deploy/App.Deploy.csproj
new file mode 100644
index 0000000..198d786
--- /dev/null
+++ b/App.Deploy/App.Deploy.csproj
@@ -0,0 +1,24 @@
+
+
+
+ Exe
+ net7.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/App.Deploy/Pulumi.yaml b/App.Deploy/Pulumi.yaml
new file mode 100644
index 0000000..641a331
--- /dev/null
+++ b/App.Deploy/Pulumi.yaml
@@ -0,0 +1,2 @@
+name: App.Deploy
+runtime: dotnet
diff --git a/App.Deploy/deploy.sh b/App.Deploy/deploy.sh
new file mode 100755
index 0000000..e0f9879
--- /dev/null
+++ b/App.Deploy/deploy.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+
+set -e
+
+cd "$(dirname "$(realpath "$0")")";
+
+set -a
+test -f .env.deploy.local && source .env.deploy.local
+test -f .env.local && source .env.local
+set +a
+
+# Login to cloud
+pulumi login "gs://${GOOGLE_PROJECT_ID}-pulumi"
+
+# Set configuration only if modified
+if { [ ".env.deploy.local" -nt "Pulumi.${APP_ENVIRONMENT}.yaml" ] || [ ".env.local" -nt "Pulumi.${APP_ENVIRONMENT}.yaml" ]; } || [ ! -f "Pulumi.${APP_ENVIRONMENT}.yaml" ]; then
+ # So old configs are cleared
+ rm -f "Pulumi.${APP_ENVIRONMENT}.yaml"
+
+ pulumi stack select \
+ --non-interactive \
+ --create "${APP_ENVIRONMENT}"
+
+ # Set configurations
+ function pulumi_config_set {
+ echo "Setting config ${1}"
+ pulumi config set --non-interactive "${@}"
+ }
+
+ pulumi_config_set gcp:project "${GOOGLE_PROJECT_ID}"
+ pulumi_config_set gcp:region "${GOOGLE_REGION}"
+
+ pulumi_config_set app:tag "${APP_TAG}"
+ pulumi_config_set app:environment "${APP_ENVIRONMENT}"
+ pulumi_config_set app:projectDir "$(dirname $(pwd))"
+ pulumi_config_set app:dataProtectionCert "${DATA_PROTECTION_CERTIFICATE}"
+
+ pulumi_config_set sentry:dsn "${SENTRY_DSN}" --secret
+
+ pulumi_config_set mongodbatlas:publicKey "${MONGODB_ATLAS_PUBLIC_KEY}" --secret
+ pulumi_config_set mongodbatlas:privateKey "${MONGODB_ATLAS_PRIVATE_KEY}" --secret
+ pulumi_config_set mongodbatlasCustom:projectId "${MONGODB_ATLAS_PROJECT_ID}"
+
+ pulumi_config_set cloudflare:apiToken "${CLOUDFLARE_API_TOKEN}" --secret
+ pulumi_config_set cloudflareCustom:accountId "${CLOUDFLARE_ACCOUNT_ID}"
+
+ pulumi_config_set auth0:domain "${AUTH0_DOMAIN}"
+ pulumi_config_set auth0:client_id "${AUTH0_CLIENT_ID}" --secret
+ pulumi_config_set auth0:client_secret "${AUTH0_CLIENT_SECRET}" --secret
+
+ pulumi_config_set ynab:clientId "${YNAB_CLIENT_ID}"
+ pulumi_config_set ynab:clientSecret "${YNAB_CLIENT_SECRET}" --secret
+else
+ pulumi stack select \
+ --non-interactive \
+ --create "${APP_ENVIRONMENT}"
+fi
+
+# Concurrency is handled by github actions
+pulumi cancel --yes
+
+if [ "$1" == "up" ]; then
+ pulumi up \
+ --non-interactive \
+ --yes \
+ --show-full-output \
+ --show-config \
+ --diff \
+ "${@:2}"
+elif [ "$1" == "rm" ]; then
+ pulumi destroy --yes
+ pulumi stack rm --yes
+elif [ "$1" == "refresh" ]; then
+ pulumi refresh --yes
+else
+ echo "deploy.sh [up|rm|refresh]"
+ exit 1
+fi
\ No newline at end of file
diff --git a/App.Deploy/pulumi-state-bucket-lifecycle.json b/App.Deploy/pulumi-state-bucket-lifecycle.json
new file mode 100644
index 0000000..1c7b4e3
--- /dev/null
+++ b/App.Deploy/pulumi-state-bucket-lifecycle.json
@@ -0,0 +1,13 @@
+{
+ "lifecycle": {
+ "rule": [
+ {
+ "action": {"type": "Delete"},
+ "condition": {
+ "numNewerVersions": 7,
+ "isLive": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/deploy/setup.sh b/App.Deploy/setup.sh
similarity index 86%
rename from deploy/setup.sh
rename to App.Deploy/setup.sh
index 4bbe445..5feb4fa 100755
--- a/deploy/setup.sh
+++ b/App.Deploy/setup.sh
@@ -21,6 +21,10 @@ PROJECT_SLUG=$(echo "${PROJECT_NAME}" | slugify )
SERVICE_ACCOUNT_NAME="github-cicd"
IDENTITY_POOL_NAME="github-pool"
IDENTITY_PROVIDER_NAME="github-provider"
+PULUMI_CONFIG_PASSPHRASE=$(echo $RANDOM | md5sum | head -c 20; echo;)
+
+echo "Generating data protection cert"
+DATA_PROTECTION_CERTIFICATE=$(openssl req -x509 -newkey rsa:2048 -keyout /dev/stdout -out /dev/stdout -nodes -days 365 --subj '/')
# Create project
if ! gcloud projects describe "${PROJECT_SLUG}" > /dev/null; then
@@ -37,6 +41,7 @@ echo "Enabling required services"
gcloud services enable iamcredentials.googleapis.com --project "${PROJECT_SLUG}"
gcloud services enable artifactregistry.googleapis.com --project "${PROJECT_SLUG}"
gcloud services enable run.googleapis.com --project "${PROJECT_SLUG}"
+gcloud services enable secretmanager.googleapis.com --project "${PROJECT_SLUG}"
echo ""
# Link billing account
@@ -100,8 +105,10 @@ gcloud iam service-accounts add-iam-policy-binding "${GOOGLE_SERVICE_ACCOUNT_EMA
--member="principalSet://iam.googleapis.com/${IDENTITY_POOL_ID}/attribute.repository/${GITHUB_REPOSITORY}"
GCLOUD_ROLES=(
"roles/artifactregistry.repoAdmin"
- "roles/storage.objectViewer"
+ "roles/storage.objectAdmin"
"roles/iam.serviceAccountUser"
+ "roles/artifactregistry.repoAdmin"
+ "roles/secretmanager.admin"
)
for GCLOUD_ROLE in "${GCLOUD_ROLES[@]}"; do
gcloud projects add-iam-policy-binding "${PROJECT_SLUG}" \
@@ -132,6 +139,23 @@ fi
echo ""
+# Create pulumi state bucket
+if ! gcloud storage buckets describe --project="${PROJECT_SLUG}" "gs://${PROJECT_SLUG}-pulumi" > /dev/null; then
+ echo "Creating pulumi state bucket"
+ gcloud storage buckets create "gs://${PROJECT_SLUG}-pulumi" \
+ --no-public-access-prevention \
+ --location="${GOOGLE_REGION}" \
+ --project="${PROJECT_SLUG}"
+
+ gcloud storage buckets update "gs://${PROJECT_SLUG}-pulumi" \
+ --versioning \
+ --lifecycle-file=pulumi-state-bucket-lifecycle.json
+else
+ echo "Pulumi state bucket already created"
+fi
+echo ""
+
+
# Create mongodb atlas project
if ! atlas project list | grep "${PROJECT_SLUG}" > /dev/null; then
echo "Creating MongoDB Atlas project"
@@ -179,7 +203,8 @@ function storeSecret {
echo "${SECRET_VALUE}" | gh secret set "${SECRET_NAME}" --app actions
echo "${SECRET_VALUE}" | gh secret set "${SECRET_NAME}" --app dependabot
- echo "${SECRET_NAME}=\"${SECRET_VALUE}\"" >> .env.deploy.local
+
+ echo "${SECRET_NAME}='${SECRET_VALUE}'" >> .env.deploy.local
}
cat /dev/null > .env.deploy.local
storeSecret GOOGLE_WORKLOAD_IDENTITY_PROVIDER
@@ -191,6 +216,9 @@ storeSecret MONGODB_ATLAS_PRIVATE_KEY
storeSecret MONGODB_ATLAS_PUBLIC_KEY
storeSecret MONGODB_ATLAS_PROJECT_ID
+# Secret protection keys
+storeSecret PULUMI_CONFIG_PASSPHRASE
+storeSecret DATA_PROTECTION_CERTIFICATE
# Variables that are required before setup. Preferably these are created with cli tools.
storeSecret AUTH0_DOMAIN
diff --git a/App.Deploy/src/AppStack.cs b/App.Deploy/src/AppStack.cs
new file mode 100644
index 0000000..478c0d0
--- /dev/null
+++ b/App.Deploy/src/AppStack.cs
@@ -0,0 +1,27 @@
+using App.Deploy.Component;
+using App.Deploy.Component.Function.Integration;
+using App.Deploy.Config;
+using Pulumi;
+
+namespace App.Deploy;
+
+internal class AppStack : Stack
+{
+ public AppStack()
+ {
+ var config = new AppConfig();
+
+ // Infra
+ new Auth0Component($"{config.Environment}-auth", config);
+ var database = new DatabaseComponent($"{config.Environment}-database", config);
+
+ // Cloud functions
+ var ynabComponent = new YnabComponent($"{config.Environment}-fn-integration-ynab", config, database);
+
+ // Frontend
+ new FrontendComponent($"{config.Environment}-frontend", config, new Dictionary
+ {
+ {"FUNCTION_INTEGRATION_YNAB", ynabComponent}
+ });
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Component/Auth0Component.cs b/App.Deploy/src/Component/Auth0Component.cs
new file mode 100644
index 0000000..c2d2415
--- /dev/null
+++ b/App.Deploy/src/Component/Auth0Component.cs
@@ -0,0 +1,87 @@
+using App.Deploy.Config;
+using Pulumi;
+using Pulumi.Auth0;
+using Pulumi.Auth0.Inputs;
+
+namespace App.Deploy.Component;
+
+internal class Auth0Component : ComponentResource
+{
+ private readonly Dictionary _scopes = new()
+ {
+ { "function.integration.ynab", "Configure YNAB integration" }
+ };
+
+ private readonly ResourceServer _publicApi;
+
+ public Auth0Component(
+ string name,
+ AppConfig config
+ ) : this(name, config, new ComponentResourceOptions())
+ {
+ }
+
+ public Auth0Component(
+ string name,
+ AppConfig config,
+ ComponentResourceOptions opts
+ ) : base("app:auth0", name, opts)
+ {
+ _publicApi = new ResourceServer(
+ $"{name}-public",
+ new ResourceServerArgs
+ {
+ Identifier = $"{name}-public",
+ Scopes = GetApiScopes()
+ },
+ new CustomResourceOptions { Parent = this });
+
+ new Role(
+ $"{name}-user",
+ new()
+ {
+ Description = "App user",
+ Permissions = GetRolePermissions()
+ },
+ new CustomResourceOptions { Parent = this });
+
+ new Rule(
+ $"{name}-tenant-claim",
+ new()
+ {
+ Script = $@"
+ function (user, context, callback) {{
+ if (context.clientName.startsWith('{config.Environment}:')) {{
+ context.accessToken['app/tenants'] = user?.app_metadata?.tenants || [];
+ }}
+
+ return callback(null, user, context);
+ }}"
+ },
+ new CustomResourceOptions { Parent = this });
+
+ RegisterOutputs();
+ }
+
+ private InputList GetApiScopes()
+ {
+ return _scopes
+ .Select(kvp => new ResourceServerScopeArgs
+ {
+ Value = kvp.Key,
+ Description = kvp.Value
+ }
+ ).ToList();
+ }
+
+ private InputList GetRolePermissions()
+ {
+ return _scopes
+ .Select(kvp => new RolePermissionArgs
+ {
+ ResourceServerIdentifier = _publicApi.Identifier,
+ Name = kvp.Key
+ }
+ ).ToList();
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Component/DatabaseComponent.cs b/App.Deploy/src/Component/DatabaseComponent.cs
new file mode 100644
index 0000000..548f14d
--- /dev/null
+++ b/App.Deploy/src/Component/DatabaseComponent.cs
@@ -0,0 +1,92 @@
+using App.Deploy.Config;
+using Pulumi;
+using Pulumi.Mongodbatlas;
+using Pulumi.Mongodbatlas.Inputs;
+using Pulumi.Random;
+
+namespace App.Deploy.Component;
+
+public class DatabaseComponent : ComponentResource
+{
+ private readonly DatabaseUser _user;
+ private readonly ServerlessInstance _server;
+
+ [Output]
+ public Output ConnectionString
+ {
+ get
+ {
+ return _server.ConnectionStringsStandardSrv
+ .Apply(str => str.Replace("mongodb+srv://", $"mongodb+srv://{_user.Username}:{_user.Password}@"));
+ }
+ // ReSharper disable once UnusedMember.Global
+ set { }
+ }
+
+ public DatabaseComponent(
+ string name,
+ AppConfig config
+ ) : this(name, config, new ComponentResourceOptions())
+ {
+ }
+
+ public DatabaseComponent(
+ string name,
+ AppConfig config,
+ ComponentResourceOptions opts
+ ) : base("app:database", name, opts)
+ {
+ _server = new ServerlessInstance(
+ name,
+ new ServerlessInstanceArgs
+ {
+ ProjectId = config.MongoDb.ProjectId,
+ ProviderSettingsBackingProviderName = "GCP",
+ ProviderSettingsProviderName = "SERVERLESS",
+ ProviderSettingsRegionName = config.Gcp.Region.Replace(
+ "europe-west1",
+ "WESTERN_EUROPE")
+ },
+ new CustomResourceOptions { Parent = this });
+
+
+ new ProjectIpAccessList(name, new()
+ {
+ Comment = "Public access",
+ CidrBlock = "0.0.0.0/0",
+ ProjectId = config.MongoDb.ProjectId,
+ }, new CustomResourceOptions { Parent = this });
+
+ var password = new RandomPassword($"{name}-password", new()
+ {
+ Length = 20,
+ Special = false,
+ }, new CustomResourceOptions { Parent = this });
+
+ _user = new DatabaseUser($"{name}-admin", new()
+ {
+ ProjectId = config.MongoDb.ProjectId,
+ Scopes = new[]
+ {
+ new DatabaseUserScopeArgs
+ {
+ Name = config.Environment,
+ Type = "CLUSTER",
+ }
+ },
+ Roles = new[]
+ {
+ new DatabaseUserRoleArgs
+ {
+ DatabaseName = "admin",
+ RoleName = "atlasAdmin",
+ },
+ },
+ AuthDatabaseName = "admin",
+ Username = "admin",
+ Password = password.Result,
+ }, new CustomResourceOptions { Parent = this });
+
+ RegisterOutputs();
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Component/FrontendComponent.cs b/App.Deploy/src/Component/FrontendComponent.cs
new file mode 100644
index 0000000..84933c4
--- /dev/null
+++ b/App.Deploy/src/Component/FrontendComponent.cs
@@ -0,0 +1,106 @@
+using App.Deploy.Config;
+using Pulumi;
+using Pulumi.Auth0;
+using Pulumi.Cloudflare;
+using Pulumi.Cloudflare.Inputs;
+using Pulumi.Command.Local;
+
+namespace App.Deploy.Component;
+
+internal class FrontendComponent : ComponentResource
+{
+ private readonly string _name;
+ private readonly AppConfig _config;
+ private readonly IDictionary _functions;
+ private readonly Client _authClient;
+ private Command _buildCommand;
+
+ public FrontendComponent(
+ string name,
+ AppConfig config,
+ IDictionary functions
+ ) : this(name, config, functions, new ComponentResourceOptions())
+ {
+ }
+
+ public FrontendComponent(
+ string name,
+ AppConfig config,
+ IDictionary functions,
+ ComponentResourceOptions opts
+ ) : base("app:frontend", name, opts)
+ {
+ _name = name;
+ _config = config;
+ _functions = functions;
+
+ _authClient = new Client($"{name}-client", new()
+ {
+ AppType = "spa",
+ AllowedOrigins = new[] { _config.FrontendUrl },
+ Callbacks = new[] { _config.FrontendUrl },
+ });
+
+ BuildFrontend();
+ EnsureWrangler();
+ DeployCloudflarePage();
+ }
+
+ private void BuildFrontend()
+ {
+ var envMap = new InputMap
+ {
+ { "REACT_APP_APP_ENVIRONMENT", _config.Environment },
+ { "REACT_APP_AUTH0_CLIENT_ID", _authClient.ClientId },
+ { "REACT_APP_AUTH0_DOMAIN", _config.Auth0.Domain },
+ };
+
+ foreach (var kvp in _functions)
+ {
+ envMap.Add($"REACT_APP_{kvp.Key}_BASE", kvp.Value.Url);
+ }
+
+ _buildCommand = new Command($"{_name}-build", new CommandArgs
+ {
+ Create = "(npm ci && npm run build) 2>&1",
+ Environment = envMap,
+ Dir = $"{_config.ProjectDir}/frontend-web"
+ });
+ }
+
+ private void EnsureWrangler()
+ {
+ new Command($"{_name}-install-dependencies", new CommandArgs
+ {
+ Create = "npm i wrangler 2>&1",
+ });
+ }
+
+ private void DeployCloudflarePage()
+ {
+ var project = new PagesProject($"{_name}-project", new()
+ {
+ Name = _config.ProjectSlug,
+ ProductionBranch = "main",
+ AccountId = _config.Cloudflare.AccountId
+ });
+
+ new Command(
+ $"{_name}-deploy",
+ new CommandArgs
+ {
+ Create = project.Name.Apply(name => string.Join(
+ ' ',
+ "npx wrangler pages publish build",
+ "--commit-dirty=true",
+ $"--branch=\"{_config.Environment}\" ",
+ $"--project-name=\"{name}\" ",
+ "2>&1")),
+ Dir = $"{_config.ProjectDir}/frontend-web",
+ },
+ new CustomResourceOptions
+ {
+ DependsOn = { _buildCommand, project }
+ });
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Component/Function/Integration/YnabComponent.cs b/App.Deploy/src/Component/Function/Integration/YnabComponent.cs
new file mode 100644
index 0000000..4cdf0ab
--- /dev/null
+++ b/App.Deploy/src/Component/Function/Integration/YnabComponent.cs
@@ -0,0 +1,135 @@
+using App.Deploy.Config;
+using App.Deploy.Gcp.SecretManager;
+using Pulumi;
+using Pulumi.Gcp.CloudRunV2;
+using Pulumi.Gcp.CloudRunV2.Inputs;
+using Pulumi.Gcp.SecretManager;
+using Pulumi.Gcp.SecretManager.Inputs;
+
+namespace App.Deploy.Component.Function.Integration;
+
+internal class YnabComponent : ComponentResource, ICloudFunctionComponent
+{
+ private const string ProtectionCertificatePath = "/etc/secrets/gcloud/gcloud_data_protection_certificate";
+ private const string DataProtectionCertificateVolumeName = "gcloud_data_protection_certificate";
+ private readonly Service _service;
+ private readonly string _name;
+ private readonly AppConfig _config;
+
+ [Output]
+ public Output Url
+ {
+ get => _service.Uri;
+ // ReSharper disable once UnusedMember.Global
+ set { }
+ }
+
+ public YnabComponent(
+ string name,
+ AppConfig config,
+ DatabaseComponent database
+ ) : this(name, config, database, new ComponentResourceOptions())
+ {
+ }
+
+ public YnabComponent(
+ string name,
+ AppConfig config,
+ DatabaseComponent database,
+ ComponentResourceOptions opts
+ ) : base("app:function:integration:ynab", name, opts)
+ {
+ _name = name;
+ _config = config;
+
+ _service = new Service($"{name}-service", new()
+ {
+ Name = name,
+ Ingress = "INGRESS_TRAFFIC_ALL",
+ Location = config.Gcp.Region,
+ Labels = new Dictionary
+ {
+ {"environment", config.Environment}
+ },
+ Template = new ServiceTemplateArgs
+ {
+ Containers = new[]
+ {
+ new ServiceTemplateContainerArgs
+ {
+ Image = config.ContainerImage("App.Function.Integration.Ynab"),
+ Ports = new ServiceTemplateContainerPortArgs
+ {
+ ContainerPort = 80
+ },
+ Envs = new ServiceTemplateContainerEnvArgs[]
+ {
+ new(){ Name = "App__Frontend", Value = config.FrontendUrl },
+ new(){ Name = "App__Environment", Value = config.Environment },
+ new(){ Name = "Auth0__Domain", Value = config.Auth0.Domain },
+ new(){ Name = "Database__DatabaseName", Value = "function_integration_ynab" },
+ new(){ Name = "Ynab__ClientId", Value = config.Ynab.ClientId },
+ new(){ Name = "Security__ProtectionCertificatePath", Value = ProtectionCertificatePath },
+
+ new(){
+ Name = "Sentry__Dsn",
+ ValueSource = CreateSecret("sentry-dsn", config.Sentry.Dsn)
+ .ToServiceTemplateContainerEnv()
+ },
+ new()
+ {
+ Name = "Database__ConnectionString",
+ ValueSource = database.ConnectionString
+ .Apply(str => CreateSecret("database-connection-string", str)
+ .ToServiceTemplateContainerEnv())
+ },
+ new()
+ {
+ Name = "Ynab__ClientSecret",
+ ValueSource = CreateSecret("ynab-clientsecret", config.Ynab.ClientSecret)
+ .ToServiceTemplateContainerEnv()
+ },
+ },
+ VolumeMounts = new []
+ {
+ new ServiceTemplateContainerVolumeMountArgs
+ {
+ Name = DataProtectionCertificateVolumeName,
+ MountPath = Path.GetDirectoryName(ProtectionCertificatePath)
+ }
+ }
+ },
+ },
+ Volumes = new[]
+ {
+ new ServiceTemplateVolumeArgs()
+ {
+ Name = DataProtectionCertificateVolumeName,
+ Secret = CreateSecret("data-protection-cert", _config.DataProtectionCert)
+ .ToServiceTemplateVolume(Path.GetFileName(ProtectionCertificatePath))
+ },
+ }
+ },
+ });
+ }
+
+ private SecretVersion CreateSecret(string identifier, string value)
+ {
+ var secret = new Secret($"{_name}-{identifier}", new()
+ {
+ SecretId = $"{_name}-{identifier}",
+ Labels = new Dictionary
+ {
+ { "environment", _config.Environment }
+ },
+ Replication = new SecretReplicationArgs { Automatic = true }
+ });
+
+ return new SecretVersion($"{_name}-{identifier}", new SecretVersionArgs
+ {
+ Secret = secret.Id,
+ Enabled = true,
+ SecretData = value
+ });
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Component/ICloudFunctionComponent.cs b/App.Deploy/src/Component/ICloudFunctionComponent.cs
new file mode 100644
index 0000000..f42b101
--- /dev/null
+++ b/App.Deploy/src/Component/ICloudFunctionComponent.cs
@@ -0,0 +1,8 @@
+using Pulumi;
+
+namespace App.Deploy.Component;
+
+interface ICloudFunctionComponent
+{
+ public Output Url { get; }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Config/AppConfig.cs b/App.Deploy/src/Config/AppConfig.cs
new file mode 100644
index 0000000..a1f0ad0
--- /dev/null
+++ b/App.Deploy/src/Config/AppConfig.cs
@@ -0,0 +1,41 @@
+using App.Lib.Configuration;
+
+namespace App.Deploy.Config;
+
+public class AppConfig
+{
+ private readonly Pulumi.Config _config;
+
+ public string Tag => _config.Require("tag");
+ public string Environment => _config.Require("environment");
+ public string ProjectDir => _config.Require("projectDir");
+ public string ProjectSlug => Gcp.Project;
+ public string DataProtectionCert => _config.Require("dataProtectionCert");
+
+ public GcpConfig Gcp { get; }
+ public MongoDbConfig MongoDb { get; }
+ public Auth0Config Auth0 { get; }
+ public SentryConfig Sentry { get; }
+ public YnabConfig Ynab { get; }
+ public CloudflareConfig Cloudflare { get; }
+
+ public string FrontendUrl => DevEnvConfigurationProvider.GetFrontendUrl(Environment, ProjectSlug);
+
+ public AppConfig()
+ {
+ _config = new Pulumi.Config("app");
+ Gcp = new GcpConfig("gcp");
+ Auth0 = new Auth0Config("auth0");
+ Sentry = new SentryConfig("sentry");
+ Ynab = new YnabConfig("ynab");
+
+ // Custom appended so pulumi does not throw missing key errors
+ MongoDb = new MongoDbConfig("mongodbatlasCustom");
+ Cloudflare = new CloudflareConfig("cloudflareCustom");
+ }
+
+ public string ContainerImage(string name)
+ {
+ return $"{Gcp.Region}-docker.pkg.dev/{ProjectSlug}/docker/{Environment}/{name.ToLower()}:{Tag}";
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Config/Auth0Config.cs b/App.Deploy/src/Config/Auth0Config.cs
new file mode 100644
index 0000000..0a2daf3
--- /dev/null
+++ b/App.Deploy/src/Config/Auth0Config.cs
@@ -0,0 +1,12 @@
+namespace App.Deploy.Config;
+
+public class Auth0Config : ConfigBase
+{
+ public string Domain => _config.Require("domain");
+ public string ClientId => _config.Require("client_id");
+ public string ClientSecret => _config.Require("client_secret");
+
+ public Auth0Config(string name) : base(name)
+ {
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Config/CloudflareConfig.cs b/App.Deploy/src/Config/CloudflareConfig.cs
new file mode 100644
index 0000000..eed9abf
--- /dev/null
+++ b/App.Deploy/src/Config/CloudflareConfig.cs
@@ -0,0 +1,11 @@
+namespace App.Deploy.Config;
+
+public class CloudflareConfig : ConfigBase
+{
+ public string AccountId => _config.Require("accountId");
+
+ public CloudflareConfig(string name) : base(name)
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Config/ConfigBase.cs b/App.Deploy/src/Config/ConfigBase.cs
new file mode 100644
index 0000000..4aa647e
--- /dev/null
+++ b/App.Deploy/src/Config/ConfigBase.cs
@@ -0,0 +1,11 @@
+namespace App.Deploy.Config;
+
+public class ConfigBase
+{
+ protected readonly Pulumi.Config _config;
+
+ public ConfigBase(string name)
+ {
+ _config = new Pulumi.Config(name);
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Config/GcpConfig.cs b/App.Deploy/src/Config/GcpConfig.cs
new file mode 100644
index 0000000..6faf4eb
--- /dev/null
+++ b/App.Deploy/src/Config/GcpConfig.cs
@@ -0,0 +1,11 @@
+namespace App.Deploy.Config;
+
+public class GcpConfig : ConfigBase
+{
+ public string Project => _config.Require("project");
+ public string Region => _config.Require("region");
+
+ public GcpConfig(string name) : base(name)
+ {
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Config/MongoDbConfig.cs b/App.Deploy/src/Config/MongoDbConfig.cs
new file mode 100644
index 0000000..7eba4c5
--- /dev/null
+++ b/App.Deploy/src/Config/MongoDbConfig.cs
@@ -0,0 +1,11 @@
+namespace App.Deploy.Config;
+
+public class MongoDbConfig : ConfigBase
+{
+ public string ProjectId => _config.Require("projectId");
+
+ public MongoDbConfig(string name) : base(name)
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Config/SentryConfig.cs b/App.Deploy/src/Config/SentryConfig.cs
new file mode 100644
index 0000000..9beb409
--- /dev/null
+++ b/App.Deploy/src/Config/SentryConfig.cs
@@ -0,0 +1,12 @@
+using Pulumi;
+
+namespace App.Deploy.Config;
+
+public class SentryConfig : ConfigBase
+{
+ public string Dsn => _config.Require("dsn");
+
+ public SentryConfig(string name) : base(name)
+ {
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Config/YnabConfig.cs b/App.Deploy/src/Config/YnabConfig.cs
new file mode 100644
index 0000000..a2940c6
--- /dev/null
+++ b/App.Deploy/src/Config/YnabConfig.cs
@@ -0,0 +1,11 @@
+namespace App.Deploy.Config;
+
+public class YnabConfig : ConfigBase
+{
+ public string ClientId => _config.Require("clientId");
+ public string ClientSecret => _config.Require("clientSecret");
+
+ public YnabConfig(string name) : base(name)
+ {
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Gcp/SecretManager/SecretVersionExtension.cs b/App.Deploy/src/Gcp/SecretManager/SecretVersionExtension.cs
new file mode 100644
index 0000000..18a3e11
--- /dev/null
+++ b/App.Deploy/src/Gcp/SecretManager/SecretVersionExtension.cs
@@ -0,0 +1,33 @@
+using Pulumi.Gcp.CloudRunV2.Inputs;
+using Pulumi.Gcp.SecretManager;
+
+namespace App.Deploy.Gcp.SecretManager;
+
+internal static class SecretVersionExtension
+{
+ public static ServiceTemplateContainerEnvValueSourceArgs ToServiceTemplateContainerEnv(this SecretVersion version)
+ {
+ return new ServiceTemplateContainerEnvValueSourceArgs
+ {
+ SecretKeyRef = new ServiceTemplateContainerEnvValueSourceSecretKeyRefArgs
+ {
+ Secret = version.Secret,
+ Version = version.Name,
+ }
+ };
+ }
+
+ public static ServiceTemplateVolumeSecretArgs ToServiceTemplateVolume(this SecretVersion version, string file)
+ {
+ return new ServiceTemplateVolumeSecretArgs
+ {
+ Secret = version.Secret,
+ Items = new ServiceTemplateVolumeSecretItemArgs
+ {
+ Version = version.Name,
+ Mode = 0440,
+ Path = file
+ }
+ };
+ }
+}
\ No newline at end of file
diff --git a/App.Deploy/src/Program.cs b/App.Deploy/src/Program.cs
new file mode 100644
index 0000000..db8b824
--- /dev/null
+++ b/App.Deploy/src/Program.cs
@@ -0,0 +1,22 @@
+using System.Diagnostics;
+using Pulumi;
+
+namespace App.Deploy;
+
+class Program
+{
+ static Task Main()
+ {
+ bool.TryParse(Environment.GetEnvironmentVariable("PULUMI_DEBUG"), out var debug);
+
+ if (debug)
+ {
+ while (!Debugger.IsAttached)
+ {
+ Thread.Sleep(100);
+ }
+ }
+
+ return Deployment.RunAsync();
+ }
+}
\ No newline at end of file
diff --git a/App.Function.Integration.Ynab/App.Function.Integration.Ynab.csproj b/App.Function.Integration.Ynab/App.Function.Integration.Ynab.csproj
index fdd0447..d2070f6 100644
--- a/App.Function.Integration.Ynab/App.Function.Integration.Ynab.csproj
+++ b/App.Function.Integration.Ynab/App.Function.Integration.Ynab.csproj
@@ -13,10 +13,4 @@
-
-
-
- ..\App.Function.Integration.Ynab.Tests\bin\Debug\net6.0\App.Lib.dll
-
-
diff --git a/App.Function.Integration.Ynab/deploy/deploy.yml b/App.Function.Integration.Ynab/deploy/deploy.yml
deleted file mode 100644
index 689c5c2..0000000
--- a/App.Function.Integration.Ynab/deploy/deploy.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-- vars:
- project_name: Function.Integration.Ynab
- project_slug: "{{ app_environment }}-{{ project_name | lower | replace('.', '-') }}"
- hosts: localhost
-- import_playbook: deploy_service.yml
diff --git a/App.Function.Integration.Ynab/deploy/deploy_service.yml b/App.Function.Integration.Ynab/deploy/deploy_service.yml
deleted file mode 100644
index 7f306fb..0000000
--- a/App.Function.Integration.Ynab/deploy/deploy_service.yml
+++ /dev/null
@@ -1,36 +0,0 @@
----
-- name: Deploy App.Function.Integration.Ynab
- gather_facts: false
- hosts: localhost
- vars:
- project_name: Function.Integration.Ynab
- project_slug: "{{ app_environment }}-{{ project_name | lower | replace('.', '-') }}"
-
- tasks:
- - name: Deploy
- shell: gcloud run deploy "{{ project_slug }}" \
- --image="{{ google_region }}-docker.pkg.dev/{{ google_project_id }}/docker/{{ app_environment }}/app.{{ project_name | lower }}:{{ app_image_tag }}" \
- --project="{{ google_project_id }}" \
- --region="{{ google_region }}" \
- --service-account="" \
- --set-env-vars="App__Frontend={{ app_frontend }}" \
- --set-env-vars="App__Environment={{ app_environment }}" \
- --set-env-vars="Auth0__Domain={{ auth0_domain }}" \
- --set-env-vars="Sentry__Dsn={{ sentry_dsn }}" \
- --set-env-vars="Database__ConnectionString={{ database_connection_string }}" \
- --set-env-vars="Database__DatabaseName={{ project_slug }}" \
- --set-env-vars="Ynab__ClientId={{ ynab_client_id }}" \
- --set-env-vars="Ynab__ClientSecret={{ ynab_client_secret }}" \
- --labels="environment={{ app_environment }}" \
- --platform=managed \
- --allow-unauthenticated \
- --port=80
- - name: Get service URL
- shell: gcloud run services describe "{{ project_slug }}" \
- --project="{{ google_project_id }}" \
- --region="{{ google_region }}" \
- --platform=managed \
- --format='value(status.url)'
- register: service_url
- - name: Set service URL
- set_fact: "function_integration_ynab_url={{ service_url.stdout }}"
diff --git a/App.Function.Integration.Ynab/src/Program.cs b/App.Function.Integration.Ynab/src/Program.cs
index 545cdd2..dd02c45 100644
--- a/App.Function.Integration.Ynab/src/Program.cs
+++ b/App.Function.Integration.Ynab/src/Program.cs
@@ -16,4 +16,4 @@ await AppWebApplication.CreateAndRun(
public partial class Program
{
-}
\ No newline at end of file
+}
diff --git a/App.Lib/src/AppWebApplication.cs b/App.Lib/src/AppWebApplication.cs
index bf5dcaf..a75e743 100644
--- a/App.Lib/src/AppWebApplication.cs
+++ b/App.Lib/src/AppWebApplication.cs
@@ -1,6 +1,9 @@
using System.Reflection;
+using System.Security.Cryptography.X509Certificates;
+using App.Lib.Authorization;
using App.Lib.Configuration;
using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc.Infrastructure;
using Microsoft.Extensions.Configuration;
@@ -8,12 +11,13 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using Newtonsoft.Json.Converters;
-using App.Lib.Authorization;
namespace App.Lib;
public static class AppWebApplication
{
+ public const string SwaggerBuildEnvironment = "SwaggerBuild";
+
public static async Task CreateAndRun(string[] args)
{
await CreateAndRun(args, _ => { }, _ => { });
@@ -116,9 +120,10 @@ public static async Task CreateAndRun(
var builder = WebApplication.CreateBuilder(args);
builder.Services.Configure(builder.Configuration.GetSection(AppOptions.OptionsKey));
builder.Services.Configure(builder.Configuration.GetSection(Auth0Options.OptionsKey));
- builder.Configuration
- .AddEnvironmentVariables()
- .AddUserSecrets(Assembly.GetExecutingAssembly(), true);
+
+ builder.Configuration.AddEnvironmentVariables();
+ builder.Configuration.AddUserSecrets(Assembly.GetExecutingAssembly(), true);
+
if (builder.Environment.IsDevelopment())
{
builder.Configuration.AddDevEnvVariables();
@@ -138,7 +143,7 @@ public static async Task CreateAndRun(
builder.Services.AddSwaggerGen();
builder.Services.AddSwaggerGenNewtonsoftSupport();
builder.Services.AddLogging();
- builder.Services.AddDataProtection();
+ ConfigureDataProtection(builder);
builder.Services.AddCors();
builder.Services.AddAppAuthentication(builder.Configuration);
@@ -175,4 +180,19 @@ public static async Task CreateAndRun(
app.Run();
}
-}
\ No newline at end of file
+
+ private static void ConfigureDataProtection(WebApplicationBuilder builder)
+ {
+ if (builder.Environment.EnvironmentName == SwaggerBuildEnvironment)
+ {
+ return;
+ }
+
+ var dataProtectionBuilder = builder.Services.AddDataProtection();
+ var certificate = builder.Configuration.GetValue("Security:ProtectionCertificatePath");
+ if (certificate != null)
+ {
+ dataProtectionBuilder.ProtectKeysWithCertificate(new X509Certificate2(certificate));
+ }
+ }
+}
diff --git a/App.Lib/src/Configuration/ConfigurationExtension.cs b/App.Lib/src/Configuration/ConfigurationExtension.cs
new file mode 100644
index 0000000..de32fd1
--- /dev/null
+++ b/App.Lib/src/Configuration/ConfigurationExtension.cs
@@ -0,0 +1,16 @@
+using Microsoft.Extensions.Configuration;
+
+namespace App.Lib.Configuration;
+
+public static class ConfigurationExtension
+{
+ public static T MustGetValue(this IConfiguration configuration, string path)
+ {
+ var value = configuration.GetValue(path);
+ if (value == null)
+ {
+ throw new InvalidOperationException($"Required configuration `{path}` missing.");
+ }
+ return value;
+ }
+}
\ No newline at end of file
diff --git a/App.Lib/src/Configuration/DevEnvConfigurationProvider.cs b/App.Lib/src/Configuration/DevEnvConfigurationProvider.cs
index bd7d913..dcf3fd1 100644
--- a/App.Lib/src/Configuration/DevEnvConfigurationProvider.cs
+++ b/App.Lib/src/Configuration/DevEnvConfigurationProvider.cs
@@ -14,7 +14,7 @@ public override void Load()
Data["Auth0:Domain"] = devVars["AUTH0_DOMAIN"];
}
- private string GetFrontendUrl(string appEnvironment, string googleProjectId)
+ public static string GetFrontendUrl(string appEnvironment, string projectSlug)
{
// If changed also change .github/workflows/deploy.yaml jobs.deploy
switch (appEnvironment)
@@ -22,9 +22,9 @@ private string GetFrontendUrl(string appEnvironment, string googleProjectId)
case "dev":
return "http://localhost:3000";
case "main":
- return $"https://{googleProjectId}.pages.dev";
+ return $"https://{projectSlug}.pages.dev";
default:
- return $"https://{appEnvironment}.{googleProjectId}.pages.dev";
+ return $"https://{appEnvironment}.{projectSlug}.pages.dev";
}
}
diff --git a/deploy/.gitignore b/deploy/.gitignore
deleted file mode 100644
index 30bc162..0000000
--- a/deploy/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/node_modules
\ No newline at end of file
diff --git a/deploy/package-lock.json b/deploy/package-lock.json
deleted file mode 100644
index 31eee87..0000000
--- a/deploy/package-lock.json
+++ /dev/null
@@ -1,5432 +0,0 @@
-{
- "name": "deploy",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "name": "deploy",
- "dependencies": {
- "auth0-deploy-cli": "^7.16.1",
- "wrangler": "^2.9.1"
- }
- },
- "node_modules/@cloudflare/kv-asset-handler": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz",
- "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==",
- "dependencies": {
- "mime": "^3.0.0"
- }
- },
- "node_modules/@cloudflare/kv-asset-handler/node_modules/mime": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
- "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@colors/colors": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
- "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
- "engines": {
- "node": ">=0.1.90"
- }
- },
- "node_modules/@dabh/diagnostics": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
- "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
- "dependencies": {
- "colorspace": "1.1.x",
- "enabled": "2.0.x",
- "kuler": "^2.0.0"
- }
- },
- "node_modules/@esbuild-plugins/node-globals-polyfill": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz",
- "integrity": "sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==",
- "peerDependencies": {
- "esbuild": "*"
- }
- },
- "node_modules/@esbuild-plugins/node-modules-polyfill": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz",
- "integrity": "sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==",
- "dependencies": {
- "escape-string-regexp": "^4.0.0",
- "rollup-plugin-node-polyfills": "^0.2.1"
- },
- "peerDependencies": {
- "esbuild": "*"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.3.tgz",
- "integrity": "sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==",
- "cpu": [
- "arm"
- ],
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.3.tgz",
- "integrity": "sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.3.tgz",
- "integrity": "sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.3.tgz",
- "integrity": "sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.3.tgz",
- "integrity": "sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.3.tgz",
- "integrity": "sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.3.tgz",
- "integrity": "sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.3.tgz",
- "integrity": "sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==",
- "cpu": [
- "arm"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.3.tgz",
- "integrity": "sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.3.tgz",
- "integrity": "sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==",
- "cpu": [
- "ia32"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.3.tgz",
- "integrity": "sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==",
- "cpu": [
- "loong64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.3.tgz",
- "integrity": "sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==",
- "cpu": [
- "mips64el"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.3.tgz",
- "integrity": "sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==",
- "cpu": [
- "ppc64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.3.tgz",
- "integrity": "sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==",
- "cpu": [
- "riscv64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.3.tgz",
- "integrity": "sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==",
- "cpu": [
- "s390x"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.3.tgz",
- "integrity": "sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.3.tgz",
- "integrity": "sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.3.tgz",
- "integrity": "sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.3.tgz",
- "integrity": "sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.3.tgz",
- "integrity": "sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.3.tgz",
- "integrity": "sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==",
- "cpu": [
- "ia32"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.3.tgz",
- "integrity": "sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@iarna/toml": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
- "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
- },
- "node_modules/@miniflare/cache": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/cache/-/cache-2.11.0.tgz",
- "integrity": "sha512-L/kc9AzidPwFuk2fwHpAEePi0kNBk6FWUq3ln+9beRCDrPEpfVrDRFpNleF1NFZz5//oeVMuo8F0IVUQGzR7+Q==",
- "dependencies": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "http-cache-semantics": "^4.1.0",
- "undici": "5.9.1"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/cli-parser": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.11.0.tgz",
- "integrity": "sha512-JUmyRzEGAS6CouvXJwBh8p44onfw3KRpfq5JGXEuHModOGjTp6li7PQyCTNPV2Hv/7StAXWnTFGXeAqyDHuTig==",
- "dependencies": {
- "@miniflare/shared": "2.11.0",
- "kleur": "^4.1.4"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/core": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/core/-/core-2.11.0.tgz",
- "integrity": "sha512-UFMFiCG0co36VpZkgFrSBnrxo71uf1x+cjlzzJi3khmMyDlnLu4RuIQsAqvKbYom6fi3G9Q8lTgM7JuOXFyjhw==",
- "dependencies": {
- "@iarna/toml": "^2.2.5",
- "@miniflare/queues": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "@miniflare/watcher": "2.11.0",
- "busboy": "^1.6.0",
- "dotenv": "^10.0.0",
- "kleur": "^4.1.4",
- "set-cookie-parser": "^2.4.8",
- "undici": "5.9.1",
- "urlpattern-polyfill": "^4.0.3"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/d1": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/d1/-/d1-2.11.0.tgz",
- "integrity": "sha512-aDdBVQZ2C0Zs3+Y9ZbRctmuQxozPfpumwJ/6NG6fBadANvune/hW7ddEoxyteIEU9W3IgzVj8s4by4VvasX90A==",
- "dependencies": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0"
- },
- "engines": {
- "node": ">=16.7"
- }
- },
- "node_modules/@miniflare/durable-objects": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.11.0.tgz",
- "integrity": "sha512-0cKJaMgraTEU1b4kqK8cjD2oTeOjA6QU3Y+lWiZT/k1PMHZULovrSFnjii7qZ8npf4VHSIN6XYPxhyxRyEM65Q==",
- "dependencies": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "@miniflare/storage-memory": "2.11.0",
- "undici": "5.9.1"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/html-rewriter": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.11.0.tgz",
- "integrity": "sha512-olTqmuYTHnoTNtiA0vjQ/ixRfbwgPzDrAUbtXDCYW45VFbHfDVJrJGZX3Jg0HpSlxy86Zclle1SUxGbVDzxsBg==",
- "dependencies": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "html-rewriter-wasm": "^0.4.1",
- "undici": "5.9.1"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/http-server": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.11.0.tgz",
- "integrity": "sha512-sMLcrDFzqqAvnQmAUH0hRTo8sBjW79VZYfnIH5FAGSGcKX6kdAGs9RStdYZ4CftQCBAEQScX0KBsMx5FwJRe9Q==",
- "dependencies": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "@miniflare/web-sockets": "2.11.0",
- "kleur": "^4.1.4",
- "selfsigned": "^2.0.0",
- "undici": "5.9.1",
- "ws": "^8.2.2",
- "youch": "^2.2.2"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/kv": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/kv/-/kv-2.11.0.tgz",
- "integrity": "sha512-3m9dL2HBBN170V1JvwjjucR5zl4G3mlcsV6C1E7A2wLl2Z2TWvIx/tSY9hrhkD96dFnejwJ9qmPMbXMMuynhjg==",
- "dependencies": {
- "@miniflare/shared": "2.11.0"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/queues": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/queues/-/queues-2.11.0.tgz",
- "integrity": "sha512-fLHjdrNLKhn0LZM/aii/9GsAttFd+lWlGzK8HOg1R0vhfKBwEub4zntjMmOfFbDm1ntc21tdMK7n3ldUphwh5w==",
- "dependencies": {
- "@miniflare/shared": "2.11.0"
- },
- "engines": {
- "node": ">=16.7"
- }
- },
- "node_modules/@miniflare/r2": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/r2/-/r2-2.11.0.tgz",
- "integrity": "sha512-MKuyJ/gGNsK3eWbGdygvozqcyaZhM3C6NGHvoaZwH503dwN569j5DpatTWiHGFeDeSu64VqcIsGehz05GDUaag==",
- "dependencies": {
- "@miniflare/shared": "2.11.0",
- "undici": "5.9.1"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/runner-vm": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.11.0.tgz",
- "integrity": "sha512-bkVSuvCf5+VylqN8lTiLxIYqYcKFbl+BywZGwGQndPC/3wh42J00mM0jw4hRbvXgwuBhlUyCVpEXtYlftFFT/g==",
- "dependencies": {
- "@miniflare/shared": "2.11.0"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/scheduler": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.11.0.tgz",
- "integrity": "sha512-DPdzINhdWeS99eIicGoluMsD4pLTTAWNQbgCv3CTwgdKA3dxdvMSCkNqZzQLiALzvk9+rSfj46FlH++HE7o7/w==",
- "dependencies": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "cron-schedule": "^3.0.4"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/shared": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/shared/-/shared-2.11.0.tgz",
- "integrity": "sha512-fWMqq3ZkWAg+k7CnyzMV/rZHugwn+/JxvVzCxrtvxzwotTN547THlOxgZe8JAP23U9BiTxOfpTfnLvFEjAmegw==",
- "dependencies": {
- "@types/better-sqlite3": "^7.6.0",
- "kleur": "^4.1.4",
- "npx-import": "^1.1.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/sites": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/sites/-/sites-2.11.0.tgz",
- "integrity": "sha512-qbefKdWZUJgsdLf+kCw03sn3h/92LZgJAbkOpP6bCrfWkXlJ37EQXO4KWdhn4Ghc7A6GwU1s1I/mdB64B3AewQ==",
- "dependencies": {
- "@miniflare/kv": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "@miniflare/storage-file": "2.11.0"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/storage-file": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.11.0.tgz",
- "integrity": "sha512-beWF/lTX74x7AiaSB+xQxywPSNdhtEKvqDkRui8eOJ5kqN2o4UaleLKQGgqmCw3WyHRIsckV7If1qpbNiLtWMw==",
- "dependencies": {
- "@miniflare/shared": "2.11.0",
- "@miniflare/storage-memory": "2.11.0"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/storage-memory": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.11.0.tgz",
- "integrity": "sha512-s0AhPww7fq/Jz80NbPb+ffhcVRKnfPi7H1dHTRTre2Ud23EVJjAWl2gat42x8NOT/Fu3/o/7A72DWQQJqfO98A==",
- "dependencies": {
- "@miniflare/shared": "2.11.0"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/watcher": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.11.0.tgz",
- "integrity": "sha512-RUfjz2iYcsQXLcGySemJl98CJ2iierbWsPGWZhIVZI+NNhROkEy77g/Q+lvP2ATwexG3/dUSfdJ3P8aH+sI4Ig==",
- "dependencies": {
- "@miniflare/shared": "2.11.0"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@miniflare/web-sockets": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.11.0.tgz",
- "integrity": "sha512-NC8RKrmxrO0hZmwpzn5g4hPGA2VblnFTIBobmWoxuK95eW49zfs7dtE/PyFs+blsGv3CjTIjHVSQ782K+C6HFA==",
- "dependencies": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "undici": "5.9.1",
- "ws": "^8.2.2"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/@types/better-sqlite3": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.3.tgz",
- "integrity": "sha512-YS64N9SNDT/NAvou3QNdzAu3E2om/W/0dhORimtPGLef+zSK5l1vDzfsWb4xgXOgfhtOI5ZDTRxnvRPb22AIVQ==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/body-parser": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
- "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
- "dependencies": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/connect": {
- "version": "3.4.35",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
- "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/express": {
- "version": "4.17.17",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz",
- "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
- "dependencies": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "node_modules/@types/express-serve-static-core": {
- "version": "4.17.33",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz",
- "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==",
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*"
- }
- },
- "node_modules/@types/jsonwebtoken": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz",
- "integrity": "sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/mime": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
- "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA=="
- },
- "node_modules/@types/node": {
- "version": "18.13.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz",
- "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg=="
- },
- "node_modules/@types/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
- },
- "node_modules/@types/range-parser": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
- "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
- },
- "node_modules/@types/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
- "dependencies": {
- "@types/mime": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/stack-trace": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz",
- "integrity": "sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g=="
- },
- "node_modules/@types/triple-beam": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz",
- "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g=="
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/ansi-styles/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/ansi-styles/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
- },
- "node_modules/async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
- "node_modules/auth0": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/auth0/-/auth0-3.1.2.tgz",
- "integrity": "sha512-z7vpn2oagPMPDlxvV01n8D2pz7QOuOKqfxEtlp5MvM7v/lR7TPOUzCxFwf7vxa+ZM65Y35uzwn4ZpgtOX6DozA==",
- "dependencies": {
- "axios": "^0.27.2",
- "form-data": "^3.0.1",
- "jsonwebtoken": "^9.0.0",
- "jwks-rsa": "^3.0.1",
- "lru-memoizer": "^2.1.4",
- "rest-facade": "^1.16.3",
- "retry": "^0.13.1",
- "uuid": "^9.0.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/auth0-deploy-cli": {
- "version": "7.16.1",
- "resolved": "https://registry.npmjs.org/auth0-deploy-cli/-/auth0-deploy-cli-7.16.1.tgz",
- "integrity": "sha512-aTRjatejVGvKq+9SofwhLCq4woOpiOXjDBG9YpRD9fVnevkExiuLXLbMIY8ZpfHfE4l0MwGUN3bR584lf9PMbw==",
- "dependencies": {
- "ajv": "^6.12.6",
- "auth0": "^3.0.0",
- "dot-prop": "^5.2.0",
- "fs-extra": "^10.1.0",
- "global-agent": "^2.1.12",
- "js-yaml": "^4.1.0",
- "lodash": "^4.17.20",
- "mkdirp": "^1.0.4",
- "nconf": "^0.12.0",
- "promise-pool-executor": "^1.1.1",
- "sanitize-filename": "^1.6.1",
- "winston": "^3.7.2",
- "yargs": "^15.3.1"
- },
- "bin": {
- "a0deploy": "lib/index.js"
- }
- },
- "node_modules/axios": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
- "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
- "dependencies": {
- "follow-redirects": "^1.14.9",
- "form-data": "^4.0.0"
- }
- },
- "node_modules/axios/node_modules/form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/blake3-wasm": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz",
- "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g=="
- },
- "node_modules/boolean": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz",
- "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw=="
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "node_modules/builtins": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
- "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
- "dependencies": {
- "semver": "^7.0.0"
- }
- },
- "node_modules/busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dependencies": {
- "streamsearch": "^1.1.0"
- },
- "engines": {
- "node": ">=10.16.0"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/camel-case": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz",
- "integrity": "sha512-rUug78lL8mqStaLehmH2F0LxMJ2TM9fnPFxb+gFkgyUjUM/1o2wKTQtalypHnkb2cFwH/DENBw7YEAOYLgSMxQ==",
- "dependencies": {
- "sentence-case": "^1.1.1",
- "upper-case": "^1.1.1"
- }
- },
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/change-case": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/change-case/-/change-case-2.3.1.tgz",
- "integrity": "sha512-3HE5jrTqqn9jeKzD0+yWi7FU4OMicLbwB57ph4bpwEn5jGi3hZug5WjZjnBD2RY7YyTKAAck86ACfShXUWJKLg==",
- "dependencies": {
- "camel-case": "^1.1.1",
- "constant-case": "^1.1.0",
- "dot-case": "^1.1.0",
- "is-lower-case": "^1.1.0",
- "is-upper-case": "^1.1.0",
- "lower-case": "^1.1.1",
- "lower-case-first": "^1.0.0",
- "param-case": "^1.1.0",
- "pascal-case": "^1.1.0",
- "path-case": "^1.1.0",
- "sentence-case": "^1.1.1",
- "snake-case": "^1.1.0",
- "swap-case": "^1.1.0",
- "title-case": "^1.1.0",
- "upper-case": "^1.1.1",
- "upper-case-first": "^1.1.0"
- }
- },
- "node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
- }
- },
- "node_modules/color": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
- "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
- "dependencies": {
- "color-convert": "^1.9.3",
- "color-string": "^1.6.0"
- }
- },
- "node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
- },
- "node_modules/color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
- "dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
- }
- },
- "node_modules/colorspace": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
- "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
- "dependencies": {
- "color": "^3.1.3",
- "text-hex": "1.0.x"
- }
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
- },
- "node_modules/constant-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.2.tgz",
- "integrity": "sha512-FQ/HuOuSnX6nIF8OnofRWj+KnOpGAHXQpOKHmsL1sAnuLwu6r5mHGK+mJc0SkHkbmNfcU/SauqXLTEOL1JQfJA==",
- "dependencies": {
- "snake-case": "^1.1.0",
- "upper-case": "^1.1.1"
- }
- },
- "node_modules/cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookiejar": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
- "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw=="
- },
- "node_modules/core-js": {
- "version": "3.27.2",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz",
- "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==",
- "hasInstallScript": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/cron-schedule": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz",
- "integrity": "sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg=="
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/debug/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/deepmerge": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
- "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dependencies": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/detect-node": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
- "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
- },
- "node_modules/dezalgo": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
- "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
- "dependencies": {
- "asap": "^2.0.0",
- "wrappy": "1"
- }
- },
- "node_modules/dot-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.2.tgz",
- "integrity": "sha512-NzEIt12UjECXi6JZ/R/nBey6EE1qCN0yUTEFaPIaKW0AcOEwlKqujtcJVbtSfLNnj3CDoXLQyli79vAaqohyvw==",
- "dependencies": {
- "sentence-case": "^1.1.2"
- }
- },
- "node_modules/dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "dependencies": {
- "is-obj": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/dotenv": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
- "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ecdsa-sig-formatter": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/enabled": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
- "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
- },
- "node_modules/es6-error": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
- "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg=="
- },
- "node_modules/esbuild": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.3.tgz",
- "integrity": "sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==",
- "hasInstallScript": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/android-arm": "0.16.3",
- "@esbuild/android-arm64": "0.16.3",
- "@esbuild/android-x64": "0.16.3",
- "@esbuild/darwin-arm64": "0.16.3",
- "@esbuild/darwin-x64": "0.16.3",
- "@esbuild/freebsd-arm64": "0.16.3",
- "@esbuild/freebsd-x64": "0.16.3",
- "@esbuild/linux-arm": "0.16.3",
- "@esbuild/linux-arm64": "0.16.3",
- "@esbuild/linux-ia32": "0.16.3",
- "@esbuild/linux-loong64": "0.16.3",
- "@esbuild/linux-mips64el": "0.16.3",
- "@esbuild/linux-ppc64": "0.16.3",
- "@esbuild/linux-riscv64": "0.16.3",
- "@esbuild/linux-s390x": "0.16.3",
- "@esbuild/linux-x64": "0.16.3",
- "@esbuild/netbsd-x64": "0.16.3",
- "@esbuild/openbsd-x64": "0.16.3",
- "@esbuild/sunos-x64": "0.16.3",
- "@esbuild/win32-arm64": "0.16.3",
- "@esbuild/win32-ia32": "0.16.3",
- "@esbuild/win32-x64": "0.16.3"
- }
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/estree-walker": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
- "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="
- },
- "node_modules/execa": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz",
- "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==",
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.1",
- "human-signals": "^3.0.1",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^3.0.7",
- "strip-final-newline": "^3.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/execa/node_modules/is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
- "node_modules/fast-safe-stringify": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
- "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
- },
- "node_modules/fecha": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
- "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fn.name": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
- "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
- },
- "node_modules/follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/form-data": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
- "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/formidable": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz",
- "integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==",
- "dependencies": {
- "dezalgo": "^1.0.4",
- "hexoid": "^1.0.0",
- "once": "^1.4.0",
- "qs": "^6.11.0"
- },
- "funding": {
- "url": "https://ko-fi.com/tunnckoCore/commissions"
- }
- },
- "node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/global-agent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz",
- "integrity": "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==",
- "dependencies": {
- "boolean": "^3.0.1",
- "core-js": "^3.6.5",
- "es6-error": "^4.1.1",
- "matcher": "^3.0.0",
- "roarr": "^2.15.3",
- "semver": "^7.3.2",
- "serialize-error": "^7.0.1"
- },
- "engines": {
- "node": ">=10.0"
- }
- },
- "node_modules/globalthis": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
- "dependencies": {
- "define-properties": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
- "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
- "dependencies": {
- "get-intrinsic": "^1.1.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hexoid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
- "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/html-rewriter-wasm": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz",
- "integrity": "sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q=="
- },
- "node_modules/http-cache-semantics": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
- "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
- },
- "node_modules/human-signals": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz",
- "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==",
- "engines": {
- "node": ">=12.20.0"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/ini": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
- "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-lower-case": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz",
- "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==",
- "dependencies": {
- "lower-case": "^1.1.0"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-upper-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz",
- "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==",
- "dependencies": {
- "upper-case": "^1.1.0"
- }
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
- },
- "node_modules/jose": {
- "version": "4.11.4",
- "resolved": "https://registry.npmjs.org/jose/-/jose-4.11.4.tgz",
- "integrity": "sha512-94FdcR8felat4vaTJyL/WVdtlWLlsnLMZP8v+A0Vru18K3bQ22vn7TtpVh3JlgBFNIlYOUlGqwp/MjRPOnIyCQ==",
- "funding": {
- "url": "https://github.com/sponsors/panva"
- }
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
- },
- "node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/jsonwebtoken": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz",
- "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==",
- "dependencies": {
- "jws": "^3.2.2",
- "lodash": "^4.17.21",
- "ms": "^2.1.1",
- "semver": "^7.3.8"
- },
- "engines": {
- "node": ">=12",
- "npm": ">=6"
- }
- },
- "node_modules/jwa": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
- "dependencies": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/jwks-rsa": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.0.1.tgz",
- "integrity": "sha512-UUOZ0CVReK1QVU3rbi9bC7N5/le8ziUj0A2ef1Q0M7OPD2KvjEYizptqIxGIo6fSLYDkqBrazILS18tYuRc8gw==",
- "dependencies": {
- "@types/express": "^4.17.14",
- "@types/jsonwebtoken": "^9.0.0",
- "debug": "^4.3.4",
- "jose": "^4.10.4",
- "limiter": "^1.1.5",
- "lru-memoizer": "^2.1.4"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
- "dependencies": {
- "jwa": "^1.4.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/kleur": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
- "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/kuler": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
- "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
- },
- "node_modules/limiter": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz",
- "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA=="
- },
- "node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "node_modules/lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
- },
- "node_modules/lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ=="
- },
- "node_modules/logform": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz",
- "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==",
- "dependencies": {
- "@colors/colors": "1.5.0",
- "@types/triple-beam": "^1.3.2",
- "fecha": "^4.2.0",
- "ms": "^2.1.1",
- "safe-stable-stringify": "^2.3.1",
- "triple-beam": "^1.3.0"
- }
- },
- "node_modules/lower-case": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
- "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
- },
- "node_modules/lower-case-first": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz",
- "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==",
- "dependencies": {
- "lower-case": "^1.1.2"
- }
- },
- "node_modules/lru-cache": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
- "integrity": "sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==",
- "dependencies": {
- "pseudomap": "^1.0.1",
- "yallist": "^2.0.0"
- }
- },
- "node_modules/lru-memoizer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.2.0.tgz",
- "integrity": "sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw==",
- "dependencies": {
- "lodash.clonedeep": "^4.5.0",
- "lru-cache": "~4.0.0"
- }
- },
- "node_modules/magic-string": {
- "version": "0.25.9",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
- "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
- "dependencies": {
- "sourcemap-codec": "^1.4.8"
- }
- },
- "node_modules/matcher": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
- "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
- "dependencies": {
- "escape-string-regexp": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
- "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/miniflare": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-2.11.0.tgz",
- "integrity": "sha512-QA18I1VQXdCo4nBtPJUcUDxW8c9xbc5ex5F61jwhkGVOISSnYdEheolESmjr8MYk28xwi0XD1ozS4rLaTONd+w==",
- "dependencies": {
- "@miniflare/cache": "2.11.0",
- "@miniflare/cli-parser": "2.11.0",
- "@miniflare/core": "2.11.0",
- "@miniflare/d1": "2.11.0",
- "@miniflare/durable-objects": "2.11.0",
- "@miniflare/html-rewriter": "2.11.0",
- "@miniflare/http-server": "2.11.0",
- "@miniflare/kv": "2.11.0",
- "@miniflare/queues": "2.11.0",
- "@miniflare/r2": "2.11.0",
- "@miniflare/runner-vm": "2.11.0",
- "@miniflare/scheduler": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "@miniflare/sites": "2.11.0",
- "@miniflare/storage-file": "2.11.0",
- "@miniflare/storage-memory": "2.11.0",
- "@miniflare/web-sockets": "2.11.0",
- "kleur": "^4.1.4",
- "semiver": "^1.1.0",
- "source-map-support": "^0.5.20",
- "undici": "5.9.1"
- },
- "bin": {
- "miniflare": "bootstrap.js"
- },
- "engines": {
- "node": ">=16.13"
- },
- "peerDependencies": {
- "@miniflare/storage-redis": "2.11.0",
- "cron-schedule": "^3.0.4",
- "ioredis": "^4.27.9"
- },
- "peerDependenciesMeta": {
- "@miniflare/storage-redis": {
- "optional": true
- },
- "cron-schedule": {
- "optional": true
- },
- "ioredis": {
- "optional": true
- }
- }
- },
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/mustache": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
- "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
- "bin": {
- "mustache": "bin/mustache"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/nconf": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.12.0.tgz",
- "integrity": "sha512-T3fZPw3c7Dfrz8JBQEbEcZJ2s8f7cUMpKuyBtsGQe0b71pcXx6gNh4oti2xh5dxB+gO9ufNfISBlGvvWtfyMcA==",
- "dependencies": {
- "async": "^3.0.0",
- "ini": "^2.0.0",
- "secure-keys": "^1.0.0",
- "yargs": "^16.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/nconf/node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/nconf/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/nconf/node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/nconf/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/nconf/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/next-tick": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
- "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
- },
- "node_modules/node-forge": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
- "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
- "engines": {
- "node": ">= 6.13.0"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-run-path": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
- "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
- "dependencies": {
- "path-key": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/npm-run-path/node_modules/path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/npx-import": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/npx-import/-/npx-import-1.1.4.tgz",
- "integrity": "sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA==",
- "dependencies": {
- "execa": "^6.1.0",
- "parse-package-name": "^1.0.0",
- "semver": "^7.3.7",
- "validate-npm-package-name": "^4.0.0"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/one-time": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
- "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
- "dependencies": {
- "fn.name": "1.x.x"
- }
- },
- "node_modules/onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dependencies": {
- "mimic-fn": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-defer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
- "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/param-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz",
- "integrity": "sha512-gksk6zeZQxwBm1AHsKh+XDFsTGf1LvdZSkkpSIkfDtzW+EQj/P2PBgNb3Cs0Y9Xxqmbciv2JZe3fWU6Xbher+Q==",
- "dependencies": {
- "sentence-case": "^1.1.2"
- }
- },
- "node_modules/parse-package-name": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/parse-package-name/-/parse-package-name-1.0.0.tgz",
- "integrity": "sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg=="
- },
- "node_modules/pascal-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.2.tgz",
- "integrity": "sha512-QWlbdQHdKWlcyTEuv/M0noJtlCa7qTmg5QFAqhx5X9xjAfCU1kXucL+rcOmd2HliESuRLIOz8521RAW/yhuQog==",
- "dependencies": {
- "camel-case": "^1.1.1",
- "upper-case-first": "^1.1.0"
- }
- },
- "node_modules/path-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/path-case/-/path-case-1.1.2.tgz",
- "integrity": "sha512-2snAGA6xVRqTuTPa40bn0iEpYtVK6gEqeyS/63dqpm5pGlesOv6EmRcnB9Rr6eAnAC2Wqlbz0tqgJZryttxhxg==",
- "dependencies": {
- "sentence-case": "^1.1.2"
- }
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-to-regexp": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
- "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw=="
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/promise-batcher": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/promise-batcher/-/promise-batcher-1.1.1.tgz",
- "integrity": "sha512-DtGBp8OQlAtALDFoVphyAz6Vn1c0GyelKU5smpMQEXpEAcWWxY3fC5JT0AkpWqrljvJrhC6zVdWbK/jx6NNG2A==",
- "dependencies": {
- "p-defer": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/promise-batcher/node_modules/p-defer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz",
- "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/promise-pool-executor": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/promise-pool-executor/-/promise-pool-executor-1.1.1.tgz",
- "integrity": "sha512-WZTGr7E8tiW93QoSRe0+arBIrJ13m7yKov/vyWqP8nkME/OjfzZgmSJjLtcDHd6VVz2LdSoAHZLmDfis8hJd1w==",
- "dependencies": {
- "debug": "^3.1.0",
- "next-tick": "^1.0.0",
- "p-defer": "^1.0.0",
- "promise-batcher": "^1.0.1"
- },
- "engines": {
- "node": ">=5.0.0"
- }
- },
- "node_modules/promise-pool-executor/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
- },
- "node_modules/punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
- },
- "node_modules/rest-facade": {
- "version": "1.16.4",
- "resolved": "https://registry.npmjs.org/rest-facade/-/rest-facade-1.16.4.tgz",
- "integrity": "sha512-EeQm4TMYFAvEw/6wV0OyjerdR8V2cThnmXuPCmRWSrwG6p2fZw9ZkzMIYy33OpdnvHCoGHggKOly7J6Nu3nsAQ==",
- "dependencies": {
- "change-case": "^2.3.0",
- "deepmerge": "^3.2.0",
- "lodash.get": "^4.4.2",
- "superagent": "^7.1.3"
- },
- "peerDependencies": {
- "superagent-proxy": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "superagent-proxy": {
- "optional": true
- }
- }
- },
- "node_modules/retry": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/roarr": {
- "version": "2.15.4",
- "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz",
- "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==",
- "dependencies": {
- "boolean": "^3.0.1",
- "detect-node": "^2.0.4",
- "globalthis": "^1.0.1",
- "json-stringify-safe": "^5.0.1",
- "semver-compare": "^1.0.0",
- "sprintf-js": "^1.1.2"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/rollup-plugin-inject": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz",
- "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==",
- "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.",
- "dependencies": {
- "estree-walker": "^0.6.1",
- "magic-string": "^0.25.3",
- "rollup-pluginutils": "^2.8.1"
- }
- },
- "node_modules/rollup-plugin-node-polyfills": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz",
- "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==",
- "dependencies": {
- "rollup-plugin-inject": "^3.0.0"
- }
- },
- "node_modules/rollup-pluginutils": {
- "version": "2.8.2",
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
- "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
- "dependencies": {
- "estree-walker": "^0.6.1"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/safe-stable-stringify": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz",
- "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/sanitize-filename": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
- "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
- "dependencies": {
- "truncate-utf8-bytes": "^1.0.0"
- }
- },
- "node_modules/secure-keys": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz",
- "integrity": "sha512-nZi59hW3Sl5P3+wOO89eHBAAGwmCPd2aE1+dLZV5MO+ItQctIvAqihzaAXIQhvtH4KJPxM080HsnqltR2y8cWg=="
- },
- "node_modules/selfsigned": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz",
- "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==",
- "dependencies": {
- "node-forge": "^1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semiver": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz",
- "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver-compare": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
- "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow=="
- },
- "node_modules/semver/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "node_modules/sentence-case": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz",
- "integrity": "sha512-laa/UDTPXsrQnoN/Kc8ZO7gTeEjMsuPiDgUCk9N0iINRZvqAMCTXjGl8+tD27op1eF/JHbdUlEUmovDh6AX7sA==",
- "dependencies": {
- "lower-case": "^1.1.1"
- }
- },
- "node_modules/serialize-error": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
- "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
- "dependencies": {
- "type-fest": "^0.13.1"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
- },
- "node_modules/set-cookie-parser": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz",
- "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ=="
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
- },
- "node_modules/simple-swizzle": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
- "node_modules/snake-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.2.tgz",
- "integrity": "sha512-oapUKC+qulnUIN+/O7Tbl2msi9PQvJeivGN9RNbygxzI2EOY0gA96i8BJLYnGUWSLGcYtyW4YYqnGTZEySU/gg==",
- "dependencies": {
- "sentence-case": "^1.1.2"
- }
- },
- "node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/source-map-support/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/sourcemap-codec": {
- "version": "1.4.8",
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
- "deprecated": "Please use @jridgewell/sourcemap-codec instead"
- },
- "node_modules/sprintf-js": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
- "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
- },
- "node_modules/stack-trace": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
- "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/superagent": {
- "version": "7.1.5",
- "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.5.tgz",
- "integrity": "sha512-HQYyGuDRFGmZ6GNC4hq2f37KnsY9Lr0/R1marNZTgMweVDQLTLJJ6DGQ9Tj/xVVs5HEnop9EMmTbywb5P30aqw==",
- "dependencies": {
- "component-emitter": "^1.3.0",
- "cookiejar": "^2.1.3",
- "debug": "^4.3.4",
- "fast-safe-stringify": "^2.1.1",
- "form-data": "^4.0.0",
- "formidable": "^2.0.1",
- "methods": "^1.1.2",
- "mime": "^2.5.0",
- "qs": "^6.10.3",
- "readable-stream": "^3.6.0",
- "semver": "^7.3.7"
- },
- "engines": {
- "node": ">=6.4.0 <13 || >=14"
- }
- },
- "node_modules/superagent/node_modules/form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/swap-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz",
- "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==",
- "dependencies": {
- "lower-case": "^1.1.1",
- "upper-case": "^1.1.1"
- }
- },
- "node_modules/text-hex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
- "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
- },
- "node_modules/title-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/title-case/-/title-case-1.1.2.tgz",
- "integrity": "sha512-xYbo5Um5MBgn24xJSK+x5hZ8ehuGXTVhgx32KJCThHRHwpyIb1lmABi1DH5VvN9E7rNEquPjz//rF/tZQd7mjQ==",
- "dependencies": {
- "sentence-case": "^1.1.1",
- "upper-case": "^1.0.3"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/triple-beam": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
- "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
- },
- "node_modules/truncate-utf8-bytes": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
- "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==",
- "dependencies": {
- "utf8-byte-length": "^1.0.1"
- }
- },
- "node_modules/type-fest": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
- "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/undici": {
- "version": "5.9.1",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.9.1.tgz",
- "integrity": "sha512-6fB3a+SNnWEm4CJbgo0/CWR8RGcOCQP68SF4X0mxtYTq2VNN8T88NYrWVBAeSX+zb7bny2dx2iYhP3XHi00omg==",
- "engines": {
- "node": ">=12.18"
- }
- },
- "node_modules/universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/upper-case": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
- "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA=="
- },
- "node_modules/upper-case-first": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
- "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==",
- "dependencies": {
- "upper-case": "^1.1.1"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/urlpattern-polyfill": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz",
- "integrity": "sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ=="
- },
- "node_modules/utf8-byte-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
- "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA=="
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "node_modules/uuid": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
- "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/validate-npm-package-name": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz",
- "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==",
- "dependencies": {
- "builtins": "^5.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q=="
- },
- "node_modules/winston": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz",
- "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==",
- "dependencies": {
- "@colors/colors": "1.5.0",
- "@dabh/diagnostics": "^2.0.2",
- "async": "^3.2.3",
- "is-stream": "^2.0.0",
- "logform": "^2.4.0",
- "one-time": "^1.0.0",
- "readable-stream": "^3.4.0",
- "safe-stable-stringify": "^2.3.1",
- "stack-trace": "0.0.x",
- "triple-beam": "^1.3.0",
- "winston-transport": "^4.5.0"
- },
- "engines": {
- "node": ">= 12.0.0"
- }
- },
- "node_modules/winston-transport": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz",
- "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==",
- "dependencies": {
- "logform": "^2.3.2",
- "readable-stream": "^3.6.0",
- "triple-beam": "^1.3.0"
- },
- "engines": {
- "node": ">= 6.4.0"
- }
- },
- "node_modules/wrangler": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-2.9.1.tgz",
- "integrity": "sha512-tD0DJnUXQe5rd9XyVT4fd7o3N0HGGv70Uz9wAdVUl+R109sOBGfitLUxEx9z7tXOxaigR1X5R/o80yVDBlNr6A==",
- "dependencies": {
- "@cloudflare/kv-asset-handler": "^0.2.0",
- "@esbuild-plugins/node-globals-polyfill": "^0.1.1",
- "@esbuild-plugins/node-modules-polyfill": "^0.1.4",
- "@miniflare/core": "2.11.0",
- "@miniflare/d1": "2.11.0",
- "@miniflare/durable-objects": "2.11.0",
- "blake3-wasm": "^2.1.5",
- "chokidar": "^3.5.3",
- "esbuild": "0.16.3",
- "miniflare": "2.11.0",
- "nanoid": "^3.3.3",
- "path-to-regexp": "^6.2.0",
- "selfsigned": "^2.0.1",
- "source-map": "^0.7.4",
- "xxhash-wasm": "^1.0.1"
- },
- "bin": {
- "wrangler": "bin/wrangler.js",
- "wrangler2": "bin/wrangler.js"
- },
- "engines": {
- "node": ">=16.13.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- },
- "node_modules/ws": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz",
- "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/xxhash-wasm": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz",
- "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A=="
- },
- "node_modules/y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
- },
- "node_modules/yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
- },
- "node_modules/yargs": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "dependencies": {
- "cliui": "^6.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^4.1.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^4.2.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^18.1.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs-parser": {
- "version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "dependencies": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/youch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz",
- "integrity": "sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==",
- "dependencies": {
- "@types/stack-trace": "0.0.29",
- "cookie": "^0.4.1",
- "mustache": "^4.2.0",
- "stack-trace": "0.0.10"
- }
- }
- },
- "dependencies": {
- "@cloudflare/kv-asset-handler": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz",
- "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==",
- "requires": {
- "mime": "^3.0.0"
- },
- "dependencies": {
- "mime": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
- "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A=="
- }
- }
- },
- "@colors/colors": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
- "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ=="
- },
- "@dabh/diagnostics": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
- "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
- "requires": {
- "colorspace": "1.1.x",
- "enabled": "2.0.x",
- "kuler": "^2.0.0"
- }
- },
- "@esbuild-plugins/node-globals-polyfill": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz",
- "integrity": "sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==",
- "requires": {}
- },
- "@esbuild-plugins/node-modules-polyfill": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz",
- "integrity": "sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==",
- "requires": {
- "escape-string-regexp": "^4.0.0",
- "rollup-plugin-node-polyfills": "^0.2.1"
- }
- },
- "@esbuild/android-arm": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.3.tgz",
- "integrity": "sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==",
- "optional": true
- },
- "@esbuild/android-arm64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.3.tgz",
- "integrity": "sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==",
- "optional": true
- },
- "@esbuild/android-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.3.tgz",
- "integrity": "sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==",
- "optional": true
- },
- "@esbuild/darwin-arm64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.3.tgz",
- "integrity": "sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==",
- "optional": true
- },
- "@esbuild/darwin-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.3.tgz",
- "integrity": "sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==",
- "optional": true
- },
- "@esbuild/freebsd-arm64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.3.tgz",
- "integrity": "sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==",
- "optional": true
- },
- "@esbuild/freebsd-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.3.tgz",
- "integrity": "sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==",
- "optional": true
- },
- "@esbuild/linux-arm": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.3.tgz",
- "integrity": "sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==",
- "optional": true
- },
- "@esbuild/linux-arm64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.3.tgz",
- "integrity": "sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==",
- "optional": true
- },
- "@esbuild/linux-ia32": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.3.tgz",
- "integrity": "sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==",
- "optional": true
- },
- "@esbuild/linux-loong64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.3.tgz",
- "integrity": "sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==",
- "optional": true
- },
- "@esbuild/linux-mips64el": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.3.tgz",
- "integrity": "sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==",
- "optional": true
- },
- "@esbuild/linux-ppc64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.3.tgz",
- "integrity": "sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==",
- "optional": true
- },
- "@esbuild/linux-riscv64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.3.tgz",
- "integrity": "sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==",
- "optional": true
- },
- "@esbuild/linux-s390x": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.3.tgz",
- "integrity": "sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==",
- "optional": true
- },
- "@esbuild/linux-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.3.tgz",
- "integrity": "sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==",
- "optional": true
- },
- "@esbuild/netbsd-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.3.tgz",
- "integrity": "sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==",
- "optional": true
- },
- "@esbuild/openbsd-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.3.tgz",
- "integrity": "sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==",
- "optional": true
- },
- "@esbuild/sunos-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.3.tgz",
- "integrity": "sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==",
- "optional": true
- },
- "@esbuild/win32-arm64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.3.tgz",
- "integrity": "sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==",
- "optional": true
- },
- "@esbuild/win32-ia32": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.3.tgz",
- "integrity": "sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==",
- "optional": true
- },
- "@esbuild/win32-x64": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.3.tgz",
- "integrity": "sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==",
- "optional": true
- },
- "@iarna/toml": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
- "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
- },
- "@miniflare/cache": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/cache/-/cache-2.11.0.tgz",
- "integrity": "sha512-L/kc9AzidPwFuk2fwHpAEePi0kNBk6FWUq3ln+9beRCDrPEpfVrDRFpNleF1NFZz5//oeVMuo8F0IVUQGzR7+Q==",
- "requires": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "http-cache-semantics": "^4.1.0",
- "undici": "5.9.1"
- }
- },
- "@miniflare/cli-parser": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.11.0.tgz",
- "integrity": "sha512-JUmyRzEGAS6CouvXJwBh8p44onfw3KRpfq5JGXEuHModOGjTp6li7PQyCTNPV2Hv/7StAXWnTFGXeAqyDHuTig==",
- "requires": {
- "@miniflare/shared": "2.11.0",
- "kleur": "^4.1.4"
- }
- },
- "@miniflare/core": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/core/-/core-2.11.0.tgz",
- "integrity": "sha512-UFMFiCG0co36VpZkgFrSBnrxo71uf1x+cjlzzJi3khmMyDlnLu4RuIQsAqvKbYom6fi3G9Q8lTgM7JuOXFyjhw==",
- "requires": {
- "@iarna/toml": "^2.2.5",
- "@miniflare/queues": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "@miniflare/watcher": "2.11.0",
- "busboy": "^1.6.0",
- "dotenv": "^10.0.0",
- "kleur": "^4.1.4",
- "set-cookie-parser": "^2.4.8",
- "undici": "5.9.1",
- "urlpattern-polyfill": "^4.0.3"
- }
- },
- "@miniflare/d1": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/d1/-/d1-2.11.0.tgz",
- "integrity": "sha512-aDdBVQZ2C0Zs3+Y9ZbRctmuQxozPfpumwJ/6NG6fBadANvune/hW7ddEoxyteIEU9W3IgzVj8s4by4VvasX90A==",
- "requires": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0"
- }
- },
- "@miniflare/durable-objects": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.11.0.tgz",
- "integrity": "sha512-0cKJaMgraTEU1b4kqK8cjD2oTeOjA6QU3Y+lWiZT/k1PMHZULovrSFnjii7qZ8npf4VHSIN6XYPxhyxRyEM65Q==",
- "requires": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "@miniflare/storage-memory": "2.11.0",
- "undici": "5.9.1"
- }
- },
- "@miniflare/html-rewriter": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.11.0.tgz",
- "integrity": "sha512-olTqmuYTHnoTNtiA0vjQ/ixRfbwgPzDrAUbtXDCYW45VFbHfDVJrJGZX3Jg0HpSlxy86Zclle1SUxGbVDzxsBg==",
- "requires": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "html-rewriter-wasm": "^0.4.1",
- "undici": "5.9.1"
- }
- },
- "@miniflare/http-server": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.11.0.tgz",
- "integrity": "sha512-sMLcrDFzqqAvnQmAUH0hRTo8sBjW79VZYfnIH5FAGSGcKX6kdAGs9RStdYZ4CftQCBAEQScX0KBsMx5FwJRe9Q==",
- "requires": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "@miniflare/web-sockets": "2.11.0",
- "kleur": "^4.1.4",
- "selfsigned": "^2.0.0",
- "undici": "5.9.1",
- "ws": "^8.2.2",
- "youch": "^2.2.2"
- }
- },
- "@miniflare/kv": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/kv/-/kv-2.11.0.tgz",
- "integrity": "sha512-3m9dL2HBBN170V1JvwjjucR5zl4G3mlcsV6C1E7A2wLl2Z2TWvIx/tSY9hrhkD96dFnejwJ9qmPMbXMMuynhjg==",
- "requires": {
- "@miniflare/shared": "2.11.0"
- }
- },
- "@miniflare/queues": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/queues/-/queues-2.11.0.tgz",
- "integrity": "sha512-fLHjdrNLKhn0LZM/aii/9GsAttFd+lWlGzK8HOg1R0vhfKBwEub4zntjMmOfFbDm1ntc21tdMK7n3ldUphwh5w==",
- "requires": {
- "@miniflare/shared": "2.11.0"
- }
- },
- "@miniflare/r2": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/r2/-/r2-2.11.0.tgz",
- "integrity": "sha512-MKuyJ/gGNsK3eWbGdygvozqcyaZhM3C6NGHvoaZwH503dwN569j5DpatTWiHGFeDeSu64VqcIsGehz05GDUaag==",
- "requires": {
- "@miniflare/shared": "2.11.0",
- "undici": "5.9.1"
- }
- },
- "@miniflare/runner-vm": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.11.0.tgz",
- "integrity": "sha512-bkVSuvCf5+VylqN8lTiLxIYqYcKFbl+BywZGwGQndPC/3wh42J00mM0jw4hRbvXgwuBhlUyCVpEXtYlftFFT/g==",
- "requires": {
- "@miniflare/shared": "2.11.0"
- }
- },
- "@miniflare/scheduler": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.11.0.tgz",
- "integrity": "sha512-DPdzINhdWeS99eIicGoluMsD4pLTTAWNQbgCv3CTwgdKA3dxdvMSCkNqZzQLiALzvk9+rSfj46FlH++HE7o7/w==",
- "requires": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "cron-schedule": "^3.0.4"
- }
- },
- "@miniflare/shared": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/shared/-/shared-2.11.0.tgz",
- "integrity": "sha512-fWMqq3ZkWAg+k7CnyzMV/rZHugwn+/JxvVzCxrtvxzwotTN547THlOxgZe8JAP23U9BiTxOfpTfnLvFEjAmegw==",
- "requires": {
- "@types/better-sqlite3": "^7.6.0",
- "kleur": "^4.1.4",
- "npx-import": "^1.1.3",
- "picomatch": "^2.3.1"
- }
- },
- "@miniflare/sites": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/sites/-/sites-2.11.0.tgz",
- "integrity": "sha512-qbefKdWZUJgsdLf+kCw03sn3h/92LZgJAbkOpP6bCrfWkXlJ37EQXO4KWdhn4Ghc7A6GwU1s1I/mdB64B3AewQ==",
- "requires": {
- "@miniflare/kv": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "@miniflare/storage-file": "2.11.0"
- }
- },
- "@miniflare/storage-file": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.11.0.tgz",
- "integrity": "sha512-beWF/lTX74x7AiaSB+xQxywPSNdhtEKvqDkRui8eOJ5kqN2o4UaleLKQGgqmCw3WyHRIsckV7If1qpbNiLtWMw==",
- "requires": {
- "@miniflare/shared": "2.11.0",
- "@miniflare/storage-memory": "2.11.0"
- }
- },
- "@miniflare/storage-memory": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.11.0.tgz",
- "integrity": "sha512-s0AhPww7fq/Jz80NbPb+ffhcVRKnfPi7H1dHTRTre2Ud23EVJjAWl2gat42x8NOT/Fu3/o/7A72DWQQJqfO98A==",
- "requires": {
- "@miniflare/shared": "2.11.0"
- }
- },
- "@miniflare/watcher": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.11.0.tgz",
- "integrity": "sha512-RUfjz2iYcsQXLcGySemJl98CJ2iierbWsPGWZhIVZI+NNhROkEy77g/Q+lvP2ATwexG3/dUSfdJ3P8aH+sI4Ig==",
- "requires": {
- "@miniflare/shared": "2.11.0"
- }
- },
- "@miniflare/web-sockets": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.11.0.tgz",
- "integrity": "sha512-NC8RKrmxrO0hZmwpzn5g4hPGA2VblnFTIBobmWoxuK95eW49zfs7dtE/PyFs+blsGv3CjTIjHVSQ782K+C6HFA==",
- "requires": {
- "@miniflare/core": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "undici": "5.9.1",
- "ws": "^8.2.2"
- }
- },
- "@types/better-sqlite3": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.3.tgz",
- "integrity": "sha512-YS64N9SNDT/NAvou3QNdzAu3E2om/W/0dhORimtPGLef+zSK5l1vDzfsWb4xgXOgfhtOI5ZDTRxnvRPb22AIVQ==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/body-parser": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
- "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
- "requires": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "@types/connect": {
- "version": "3.4.35",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
- "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/express": {
- "version": "4.17.17",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz",
- "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
- "requires": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "@types/express-serve-static-core": {
- "version": "4.17.33",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz",
- "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==",
- "requires": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*"
- }
- },
- "@types/jsonwebtoken": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz",
- "integrity": "sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/mime": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
- "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA=="
- },
- "@types/node": {
- "version": "18.13.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz",
- "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg=="
- },
- "@types/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
- },
- "@types/range-parser": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
- "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
- },
- "@types/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
- "requires": {
- "@types/mime": "*",
- "@types/node": "*"
- }
- },
- "@types/stack-trace": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz",
- "integrity": "sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g=="
- },
- "@types/triple-beam": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz",
- "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g=="
- },
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- },
- "dependencies": {
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- }
- }
- },
- "anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
- },
- "async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
- "auth0": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/auth0/-/auth0-3.1.2.tgz",
- "integrity": "sha512-z7vpn2oagPMPDlxvV01n8D2pz7QOuOKqfxEtlp5MvM7v/lR7TPOUzCxFwf7vxa+ZM65Y35uzwn4ZpgtOX6DozA==",
- "requires": {
- "axios": "^0.27.2",
- "form-data": "^3.0.1",
- "jsonwebtoken": "^9.0.0",
- "jwks-rsa": "^3.0.1",
- "lru-memoizer": "^2.1.4",
- "rest-facade": "^1.16.3",
- "retry": "^0.13.1",
- "uuid": "^9.0.0"
- }
- },
- "auth0-deploy-cli": {
- "version": "7.16.1",
- "resolved": "https://registry.npmjs.org/auth0-deploy-cli/-/auth0-deploy-cli-7.16.1.tgz",
- "integrity": "sha512-aTRjatejVGvKq+9SofwhLCq4woOpiOXjDBG9YpRD9fVnevkExiuLXLbMIY8ZpfHfE4l0MwGUN3bR584lf9PMbw==",
- "requires": {
- "ajv": "^6.12.6",
- "auth0": "^3.0.0",
- "dot-prop": "^5.2.0",
- "fs-extra": "^10.1.0",
- "global-agent": "^2.1.12",
- "js-yaml": "^4.1.0",
- "lodash": "^4.17.20",
- "mkdirp": "^1.0.4",
- "nconf": "^0.12.0",
- "promise-pool-executor": "^1.1.1",
- "sanitize-filename": "^1.6.1",
- "winston": "^3.7.2",
- "yargs": "^15.3.1"
- }
- },
- "axios": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
- "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
- "requires": {
- "follow-redirects": "^1.14.9",
- "form-data": "^4.0.0"
- },
- "dependencies": {
- "form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- }
- }
- }
- },
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
- },
- "blake3-wasm": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz",
- "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g=="
- },
- "boolean": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz",
- "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw=="
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
- },
- "buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "builtins": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
- "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
- "requires": {
- "semver": "^7.0.0"
- }
- },
- "busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "requires": {
- "streamsearch": "^1.1.0"
- }
- },
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "camel-case": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz",
- "integrity": "sha512-rUug78lL8mqStaLehmH2F0LxMJ2TM9fnPFxb+gFkgyUjUM/1o2wKTQtalypHnkb2cFwH/DENBw7YEAOYLgSMxQ==",
- "requires": {
- "sentence-case": "^1.1.1",
- "upper-case": "^1.1.1"
- }
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
- },
- "change-case": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/change-case/-/change-case-2.3.1.tgz",
- "integrity": "sha512-3HE5jrTqqn9jeKzD0+yWi7FU4OMicLbwB57ph4bpwEn5jGi3hZug5WjZjnBD2RY7YyTKAAck86ACfShXUWJKLg==",
- "requires": {
- "camel-case": "^1.1.1",
- "constant-case": "^1.1.0",
- "dot-case": "^1.1.0",
- "is-lower-case": "^1.1.0",
- "is-upper-case": "^1.1.0",
- "lower-case": "^1.1.1",
- "lower-case-first": "^1.0.0",
- "param-case": "^1.1.0",
- "pascal-case": "^1.1.0",
- "path-case": "^1.1.0",
- "sentence-case": "^1.1.1",
- "snake-case": "^1.1.0",
- "swap-case": "^1.1.0",
- "title-case": "^1.1.0",
- "upper-case": "^1.1.1",
- "upper-case-first": "^1.1.0"
- }
- },
- "chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "requires": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "fsevents": "~2.3.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- }
- },
- "cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
- }
- },
- "color": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
- "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
- "requires": {
- "color-convert": "^1.9.3",
- "color-string": "^1.6.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
- },
- "color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
- "requires": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
- }
- },
- "colorspace": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
- "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
- "requires": {
- "color": "^3.1.3",
- "text-hex": "1.0.x"
- }
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
- },
- "constant-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.2.tgz",
- "integrity": "sha512-FQ/HuOuSnX6nIF8OnofRWj+KnOpGAHXQpOKHmsL1sAnuLwu6r5mHGK+mJc0SkHkbmNfcU/SauqXLTEOL1JQfJA==",
- "requires": {
- "snake-case": "^1.1.0",
- "upper-case": "^1.1.1"
- }
- },
- "cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
- },
- "cookiejar": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
- "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw=="
- },
- "core-js": {
- "version": "3.27.2",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz",
- "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w=="
- },
- "cron-schedule": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz",
- "integrity": "sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg=="
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- },
- "dependencies": {
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
- },
- "deepmerge": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
- "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA=="
- },
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
- },
- "detect-node": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
- "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
- },
- "dezalgo": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
- "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
- "requires": {
- "asap": "^2.0.0",
- "wrappy": "1"
- }
- },
- "dot-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.2.tgz",
- "integrity": "sha512-NzEIt12UjECXi6JZ/R/nBey6EE1qCN0yUTEFaPIaKW0AcOEwlKqujtcJVbtSfLNnj3CDoXLQyli79vAaqohyvw==",
- "requires": {
- "sentence-case": "^1.1.2"
- }
- },
- "dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "requires": {
- "is-obj": "^2.0.0"
- }
- },
- "dotenv": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
- "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="
- },
- "ecdsa-sig-formatter": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "enabled": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
- "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
- },
- "es6-error": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
- "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg=="
- },
- "esbuild": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.3.tgz",
- "integrity": "sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==",
- "requires": {
- "@esbuild/android-arm": "0.16.3",
- "@esbuild/android-arm64": "0.16.3",
- "@esbuild/android-x64": "0.16.3",
- "@esbuild/darwin-arm64": "0.16.3",
- "@esbuild/darwin-x64": "0.16.3",
- "@esbuild/freebsd-arm64": "0.16.3",
- "@esbuild/freebsd-x64": "0.16.3",
- "@esbuild/linux-arm": "0.16.3",
- "@esbuild/linux-arm64": "0.16.3",
- "@esbuild/linux-ia32": "0.16.3",
- "@esbuild/linux-loong64": "0.16.3",
- "@esbuild/linux-mips64el": "0.16.3",
- "@esbuild/linux-ppc64": "0.16.3",
- "@esbuild/linux-riscv64": "0.16.3",
- "@esbuild/linux-s390x": "0.16.3",
- "@esbuild/linux-x64": "0.16.3",
- "@esbuild/netbsd-x64": "0.16.3",
- "@esbuild/openbsd-x64": "0.16.3",
- "@esbuild/sunos-x64": "0.16.3",
- "@esbuild/win32-arm64": "0.16.3",
- "@esbuild/win32-ia32": "0.16.3",
- "@esbuild/win32-x64": "0.16.3"
- }
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
- },
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
- },
- "estree-walker": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
- "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="
- },
- "execa": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz",
- "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==",
- "requires": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.1",
- "human-signals": "^3.0.1",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^3.0.7",
- "strip-final-newline": "^3.0.0"
- },
- "dependencies": {
- "is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA=="
- }
- }
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
- "fast-safe-stringify": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
- "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
- },
- "fecha": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
- "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "fn.name": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
- "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
- },
- "follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
- },
- "form-data": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
- "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- }
- },
- "formidable": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz",
- "integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==",
- "requires": {
- "dezalgo": "^1.0.4",
- "hexoid": "^1.0.0",
- "once": "^1.4.0",
- "qs": "^6.11.0"
- }
- },
- "fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- }
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "optional": true
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
- },
- "get-intrinsic": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- }
- },
- "get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "global-agent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz",
- "integrity": "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==",
- "requires": {
- "boolean": "^3.0.1",
- "core-js": "^3.6.5",
- "es6-error": "^4.1.1",
- "matcher": "^3.0.0",
- "roarr": "^2.15.3",
- "semver": "^7.3.2",
- "serialize-error": "^7.0.1"
- }
- },
- "globalthis": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
- "requires": {
- "define-properties": "^1.1.3"
- }
- },
- "graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-property-descriptors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
- "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
- "requires": {
- "get-intrinsic": "^1.1.1"
- }
- },
- "has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
- },
- "hexoid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
- "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g=="
- },
- "html-rewriter-wasm": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz",
- "integrity": "sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q=="
- },
- "http-cache-semantics": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
- "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
- },
- "human-signals": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz",
- "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ=="
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "ini": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
- "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA=="
- },
- "is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
- },
- "is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "requires": {
- "binary-extensions": "^2.0.0"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-lower-case": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz",
- "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==",
- "requires": {
- "lower-case": "^1.1.0"
- }
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
- },
- "is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
- },
- "is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
- },
- "is-upper-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz",
- "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==",
- "requires": {
- "upper-case": "^1.1.0"
- }
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
- },
- "jose": {
- "version": "4.11.4",
- "resolved": "https://registry.npmjs.org/jose/-/jose-4.11.4.tgz",
- "integrity": "sha512-94FdcR8felat4vaTJyL/WVdtlWLlsnLMZP8v+A0Vru18K3bQ22vn7TtpVh3JlgBFNIlYOUlGqwp/MjRPOnIyCQ=="
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
- },
- "jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "requires": {
- "graceful-fs": "^4.1.6",
- "universalify": "^2.0.0"
- }
- },
- "jsonwebtoken": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz",
- "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==",
- "requires": {
- "jws": "^3.2.2",
- "lodash": "^4.17.21",
- "ms": "^2.1.1",
- "semver": "^7.3.8"
- }
- },
- "jwa": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
- "requires": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "jwks-rsa": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.0.1.tgz",
- "integrity": "sha512-UUOZ0CVReK1QVU3rbi9bC7N5/le8ziUj0A2ef1Q0M7OPD2KvjEYizptqIxGIo6fSLYDkqBrazILS18tYuRc8gw==",
- "requires": {
- "@types/express": "^4.17.14",
- "@types/jsonwebtoken": "^9.0.0",
- "debug": "^4.3.4",
- "jose": "^4.10.4",
- "limiter": "^1.1.5",
- "lru-memoizer": "^2.1.4"
- }
- },
- "jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
- "requires": {
- "jwa": "^1.4.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "kleur": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
- "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="
- },
- "kuler": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
- "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
- },
- "limiter": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz",
- "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA=="
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
- },
- "lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ=="
- },
- "logform": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz",
- "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==",
- "requires": {
- "@colors/colors": "1.5.0",
- "@types/triple-beam": "^1.3.2",
- "fecha": "^4.2.0",
- "ms": "^2.1.1",
- "safe-stable-stringify": "^2.3.1",
- "triple-beam": "^1.3.0"
- }
- },
- "lower-case": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
- "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
- },
- "lower-case-first": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz",
- "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==",
- "requires": {
- "lower-case": "^1.1.2"
- }
- },
- "lru-cache": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
- "integrity": "sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==",
- "requires": {
- "pseudomap": "^1.0.1",
- "yallist": "^2.0.0"
- }
- },
- "lru-memoizer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.2.0.tgz",
- "integrity": "sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw==",
- "requires": {
- "lodash.clonedeep": "^4.5.0",
- "lru-cache": "~4.0.0"
- }
- },
- "magic-string": {
- "version": "0.25.9",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
- "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
- "requires": {
- "sourcemap-codec": "^1.4.8"
- }
- },
- "matcher": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
- "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
- "requires": {
- "escape-string-regexp": "^4.0.0"
- }
- },
- "merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
- },
- "methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
- },
- "mime": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
- "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="
- },
- "mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
- },
- "mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "requires": {
- "mime-db": "1.52.0"
- }
- },
- "mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw=="
- },
- "miniflare": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-2.11.0.tgz",
- "integrity": "sha512-QA18I1VQXdCo4nBtPJUcUDxW8c9xbc5ex5F61jwhkGVOISSnYdEheolESmjr8MYk28xwi0XD1ozS4rLaTONd+w==",
- "requires": {
- "@miniflare/cache": "2.11.0",
- "@miniflare/cli-parser": "2.11.0",
- "@miniflare/core": "2.11.0",
- "@miniflare/d1": "2.11.0",
- "@miniflare/durable-objects": "2.11.0",
- "@miniflare/html-rewriter": "2.11.0",
- "@miniflare/http-server": "2.11.0",
- "@miniflare/kv": "2.11.0",
- "@miniflare/queues": "2.11.0",
- "@miniflare/r2": "2.11.0",
- "@miniflare/runner-vm": "2.11.0",
- "@miniflare/scheduler": "2.11.0",
- "@miniflare/shared": "2.11.0",
- "@miniflare/sites": "2.11.0",
- "@miniflare/storage-file": "2.11.0",
- "@miniflare/storage-memory": "2.11.0",
- "@miniflare/web-sockets": "2.11.0",
- "kleur": "^4.1.4",
- "semiver": "^1.1.0",
- "source-map-support": "^0.5.20",
- "undici": "5.9.1"
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "mustache": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
- "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ=="
- },
- "nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
- },
- "nconf": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.12.0.tgz",
- "integrity": "sha512-T3fZPw3c7Dfrz8JBQEbEcZJ2s8f7cUMpKuyBtsGQe0b71pcXx6gNh4oti2xh5dxB+gO9ufNfISBlGvvWtfyMcA==",
- "requires": {
- "async": "^3.0.0",
- "ini": "^2.0.0",
- "secure-keys": "^1.0.0",
- "yargs": "^16.1.1"
- },
- "dependencies": {
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
- },
- "yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- }
- },
- "yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
- }
- }
- },
- "next-tick": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
- "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
- },
- "node-forge": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
- "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA=="
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
- },
- "npm-run-path": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
- "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
- "requires": {
- "path-key": "^4.0.0"
- },
- "dependencies": {
- "path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ=="
- }
- }
- },
- "npx-import": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/npx-import/-/npx-import-1.1.4.tgz",
- "integrity": "sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA==",
- "requires": {
- "execa": "^6.1.0",
- "parse-package-name": "^1.0.0",
- "semver": "^7.3.7",
- "validate-npm-package-name": "^4.0.0"
- }
- },
- "object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "requires": {
- "wrappy": "1"
- }
- },
- "one-time": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
- "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
- "requires": {
- "fn.name": "1.x.x"
- }
- },
- "onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "requires": {
- "mimic-fn": "^4.0.0"
- }
- },
- "p-defer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
- "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw=="
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
- },
- "param-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz",
- "integrity": "sha512-gksk6zeZQxwBm1AHsKh+XDFsTGf1LvdZSkkpSIkfDtzW+EQj/P2PBgNb3Cs0Y9Xxqmbciv2JZe3fWU6Xbher+Q==",
- "requires": {
- "sentence-case": "^1.1.2"
- }
- },
- "parse-package-name": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/parse-package-name/-/parse-package-name-1.0.0.tgz",
- "integrity": "sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg=="
- },
- "pascal-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.2.tgz",
- "integrity": "sha512-QWlbdQHdKWlcyTEuv/M0noJtlCa7qTmg5QFAqhx5X9xjAfCU1kXucL+rcOmd2HliESuRLIOz8521RAW/yhuQog==",
- "requires": {
- "camel-case": "^1.1.1",
- "upper-case-first": "^1.1.0"
- }
- },
- "path-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/path-case/-/path-case-1.1.2.tgz",
- "integrity": "sha512-2snAGA6xVRqTuTPa40bn0iEpYtVK6gEqeyS/63dqpm5pGlesOv6EmRcnB9Rr6eAnAC2Wqlbz0tqgJZryttxhxg==",
- "requires": {
- "sentence-case": "^1.1.2"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
- },
- "path-to-regexp": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
- "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw=="
- },
- "picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
- },
- "promise-batcher": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/promise-batcher/-/promise-batcher-1.1.1.tgz",
- "integrity": "sha512-DtGBp8OQlAtALDFoVphyAz6Vn1c0GyelKU5smpMQEXpEAcWWxY3fC5JT0AkpWqrljvJrhC6zVdWbK/jx6NNG2A==",
- "requires": {
- "p-defer": "^3.0.0"
- },
- "dependencies": {
- "p-defer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz",
- "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw=="
- }
- }
- },
- "promise-pool-executor": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/promise-pool-executor/-/promise-pool-executor-1.1.1.tgz",
- "integrity": "sha512-WZTGr7E8tiW93QoSRe0+arBIrJ13m7yKov/vyWqP8nkME/OjfzZgmSJjLtcDHd6VVz2LdSoAHZLmDfis8hJd1w==",
- "requires": {
- "debug": "^3.1.0",
- "next-tick": "^1.0.0",
- "p-defer": "^1.0.0",
- "promise-batcher": "^1.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "requires": {
- "ms": "^2.1.1"
- }
- }
- }
- },
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
- },
- "punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
- },
- "qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "requires": {
- "side-channel": "^1.0.4"
- }
- },
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "requires": {
- "picomatch": "^2.2.1"
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
- },
- "require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
- },
- "rest-facade": {
- "version": "1.16.4",
- "resolved": "https://registry.npmjs.org/rest-facade/-/rest-facade-1.16.4.tgz",
- "integrity": "sha512-EeQm4TMYFAvEw/6wV0OyjerdR8V2cThnmXuPCmRWSrwG6p2fZw9ZkzMIYy33OpdnvHCoGHggKOly7J6Nu3nsAQ==",
- "requires": {
- "change-case": "^2.3.0",
- "deepmerge": "^3.2.0",
- "lodash.get": "^4.4.2",
- "superagent": "^7.1.3"
- }
- },
- "retry": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg=="
- },
- "roarr": {
- "version": "2.15.4",
- "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz",
- "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==",
- "requires": {
- "boolean": "^3.0.1",
- "detect-node": "^2.0.4",
- "globalthis": "^1.0.1",
- "json-stringify-safe": "^5.0.1",
- "semver-compare": "^1.0.0",
- "sprintf-js": "^1.1.2"
- }
- },
- "rollup-plugin-inject": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz",
- "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==",
- "requires": {
- "estree-walker": "^0.6.1",
- "magic-string": "^0.25.3",
- "rollup-pluginutils": "^2.8.1"
- }
- },
- "rollup-plugin-node-polyfills": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz",
- "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==",
- "requires": {
- "rollup-plugin-inject": "^3.0.0"
- }
- },
- "rollup-pluginutils": {
- "version": "2.8.2",
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
- "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
- "requires": {
- "estree-walker": "^0.6.1"
- }
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- },
- "safe-stable-stringify": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz",
- "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA=="
- },
- "sanitize-filename": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
- "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
- "requires": {
- "truncate-utf8-bytes": "^1.0.0"
- }
- },
- "secure-keys": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz",
- "integrity": "sha512-nZi59hW3Sl5P3+wOO89eHBAAGwmCPd2aE1+dLZV5MO+ItQctIvAqihzaAXIQhvtH4KJPxM080HsnqltR2y8cWg=="
- },
- "selfsigned": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz",
- "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==",
- "requires": {
- "node-forge": "^1"
- }
- },
- "semiver": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz",
- "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg=="
- },
- "semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "requires": {
- "lru-cache": "^6.0.0"
- },
- "dependencies": {
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- }
- }
- },
- "semver-compare": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
- "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow=="
- },
- "sentence-case": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz",
- "integrity": "sha512-laa/UDTPXsrQnoN/Kc8ZO7gTeEjMsuPiDgUCk9N0iINRZvqAMCTXjGl8+tD27op1eF/JHbdUlEUmovDh6AX7sA==",
- "requires": {
- "lower-case": "^1.1.1"
- }
- },
- "serialize-error": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
- "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
- "requires": {
- "type-fest": "^0.13.1"
- }
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
- },
- "set-cookie-parser": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz",
- "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ=="
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
- },
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- }
- },
- "signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
- },
- "simple-swizzle": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
- "requires": {
- "is-arrayish": "^0.3.1"
- }
- },
- "snake-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.2.tgz",
- "integrity": "sha512-oapUKC+qulnUIN+/O7Tbl2msi9PQvJeivGN9RNbygxzI2EOY0gA96i8BJLYnGUWSLGcYtyW4YYqnGTZEySU/gg==",
- "requires": {
- "sentence-case": "^1.1.2"
- }
- },
- "source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="
- },
- "source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
- }
- },
- "sourcemap-codec": {
- "version": "1.4.8",
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
- },
- "sprintf-js": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
- "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
- },
- "stack-trace": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
- "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg=="
- },
- "streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "requires": {
- "safe-buffer": "~5.2.0"
- }
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw=="
- },
- "superagent": {
- "version": "7.1.5",
- "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.5.tgz",
- "integrity": "sha512-HQYyGuDRFGmZ6GNC4hq2f37KnsY9Lr0/R1marNZTgMweVDQLTLJJ6DGQ9Tj/xVVs5HEnop9EMmTbywb5P30aqw==",
- "requires": {
- "component-emitter": "^1.3.0",
- "cookiejar": "^2.1.3",
- "debug": "^4.3.4",
- "fast-safe-stringify": "^2.1.1",
- "form-data": "^4.0.0",
- "formidable": "^2.0.1",
- "methods": "^1.1.2",
- "mime": "^2.5.0",
- "qs": "^6.10.3",
- "readable-stream": "^3.6.0",
- "semver": "^7.3.7"
- },
- "dependencies": {
- "form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- }
- }
- }
- },
- "swap-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz",
- "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==",
- "requires": {
- "lower-case": "^1.1.1",
- "upper-case": "^1.1.1"
- }
- },
- "text-hex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
- "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
- },
- "title-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/title-case/-/title-case-1.1.2.tgz",
- "integrity": "sha512-xYbo5Um5MBgn24xJSK+x5hZ8ehuGXTVhgx32KJCThHRHwpyIb1lmABi1DH5VvN9E7rNEquPjz//rF/tZQd7mjQ==",
- "requires": {
- "sentence-case": "^1.1.1",
- "upper-case": "^1.0.3"
- }
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "triple-beam": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
- "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
- },
- "truncate-utf8-bytes": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
- "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==",
- "requires": {
- "utf8-byte-length": "^1.0.1"
- }
- },
- "type-fest": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
- "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg=="
- },
- "undici": {
- "version": "5.9.1",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.9.1.tgz",
- "integrity": "sha512-6fB3a+SNnWEm4CJbgo0/CWR8RGcOCQP68SF4X0mxtYTq2VNN8T88NYrWVBAeSX+zb7bny2dx2iYhP3XHi00omg=="
- },
- "universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
- },
- "upper-case": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
- "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA=="
- },
- "upper-case-first": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
- "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==",
- "requires": {
- "upper-case": "^1.1.1"
- }
- },
- "uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "urlpattern-polyfill": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz",
- "integrity": "sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ=="
- },
- "utf8-byte-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
- "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA=="
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "uuid": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
- "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg=="
- },
- "validate-npm-package-name": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz",
- "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==",
- "requires": {
- "builtins": "^5.0.0"
- }
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q=="
- },
- "winston": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz",
- "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==",
- "requires": {
- "@colors/colors": "1.5.0",
- "@dabh/diagnostics": "^2.0.2",
- "async": "^3.2.3",
- "is-stream": "^2.0.0",
- "logform": "^2.4.0",
- "one-time": "^1.0.0",
- "readable-stream": "^3.4.0",
- "safe-stable-stringify": "^2.3.1",
- "stack-trace": "0.0.x",
- "triple-beam": "^1.3.0",
- "winston-transport": "^4.5.0"
- }
- },
- "winston-transport": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz",
- "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==",
- "requires": {
- "logform": "^2.3.2",
- "readable-stream": "^3.6.0",
- "triple-beam": "^1.3.0"
- }
- },
- "wrangler": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-2.9.1.tgz",
- "integrity": "sha512-tD0DJnUXQe5rd9XyVT4fd7o3N0HGGv70Uz9wAdVUl+R109sOBGfitLUxEx9z7tXOxaigR1X5R/o80yVDBlNr6A==",
- "requires": {
- "@cloudflare/kv-asset-handler": "^0.2.0",
- "@esbuild-plugins/node-globals-polyfill": "^0.1.1",
- "@esbuild-plugins/node-modules-polyfill": "^0.1.4",
- "@miniflare/core": "2.11.0",
- "@miniflare/d1": "2.11.0",
- "@miniflare/durable-objects": "2.11.0",
- "blake3-wasm": "^2.1.5",
- "chokidar": "^3.5.3",
- "esbuild": "0.16.3",
- "fsevents": "~2.3.2",
- "miniflare": "2.11.0",
- "nanoid": "^3.3.3",
- "path-to-regexp": "^6.2.0",
- "selfsigned": "^2.0.1",
- "source-map": "^0.7.4",
- "xxhash-wasm": "^1.0.1"
- }
- },
- "wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- },
- "ws": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz",
- "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==",
- "requires": {}
- },
- "xxhash-wasm": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz",
- "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A=="
- },
- "y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
- },
- "yargs": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "requires": {
- "cliui": "^6.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^4.1.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^4.2.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^18.1.2"
- }
- },
- "yargs-parser": {
- "version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
- },
- "youch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz",
- "integrity": "sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==",
- "requires": {
- "@types/stack-trace": "0.0.29",
- "cookie": "^0.4.1",
- "mustache": "^4.2.0",
- "stack-trace": "0.0.10"
- }
- }
- }
-}
diff --git a/deploy/package.json b/deploy/package.json
deleted file mode 100644
index 81a11f8..0000000
--- a/deploy/package.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "name": "deploy",
- "dependencies": {
- "auth0-deploy-cli": "^7.16.1",
- "wrangler": "^2.9.1"
- }
-}
diff --git a/deploy/run-ansible.sh b/deploy/run-ansible.sh
deleted file mode 100755
index 3a77004..0000000
--- a/deploy/run-ansible.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-cd "$(dirname "$(realpath "$0")")";
-
-set -a
-test -f .env.deploy.local && source .env.deploy.local
-test -f .env.local && source .env.local
-set +a
-
-# Install deploy dependencies
-npm ci
-
-ansible-playbook "${@}" \
- -e "APP_TAG=${APP_TAG}" \
- -e "APP_ENVIRONMENT=${APP_ENVIRONMENT}" \
- -e "APP_FRONTEND=${APP_FRONTEND}" \
- -e "SENTRY_DSN=${SENTRY_DSN}" \
- -e "GOOGLE_REGION=${GOOGLE_REGION}" \
- -e "GOOGLE_PROJECT_ID=${GOOGLE_PROJECT_ID}" \
- -e "MONGODB_ATLAS_PUBLIC_KEY=${MONGODB_ATLAS_PUBLIC_KEY}" \
- -e "MONGODB_ATLAS_PRIVATE_KEY=${MONGODB_ATLAS_PRIVATE_KEY}" \
- -e "MONGODB_ATLAS_PROJECT_ID=${MONGODB_ATLAS_PROJECT_ID}" \
- -e "CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN}" \
- -e "CLOUDFLARE_ACCOUNT_ID=${CLOUDFLARE_ACCOUNT_ID}" \
- -e "AUTH0_DOMAIN=${AUTH0_DOMAIN}" \
- -e "AUTH0_CLIENT_ID=${AUTH0_CLIENT_ID}" \
- -e "AUTH0_CLIENT_SECRET=${AUTH0_CLIENT_SECRET}" \
- -e "YNAB_CLIENT_ID=${YNAB_CLIENT_ID}" \
- -e "YNAB_CLIENT_SECRET=${YNAB_CLIENT_SECRET}"
-
\ No newline at end of file
diff --git a/deploy/src/auth0/delete.yml b/deploy/src/auth0/delete.yml
deleted file mode 100644
index cefc6dd..0000000
--- a/deploy/src/auth0/delete.yml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-- name: Configure auth0 auth provider
- gather_facts: false
- hosts: localhost
- tasks:
- - name: Delete apis
- shell: auth0 apis list --json 2>/dev/null \
- | jq -r '.[] | select(.identifier | startswith("{{ app_environment }}:")) | .identifier' \
- | xargs -r -L 1 auth0 apis delete --force
- - name: Delete apps
- shell: auth0 apps list --json 2>/dev/null \
- | jq -r '.[] | select(.name | startswith("{{ app_environment }}:")) | .client_id' \
- | xargs -r -L 1 auth0 apps delete --force
- - name: Delete roles
- shell: auth0 roles list --json 2>/dev/null \
- | jq -r '.[] | select(.name | startswith("{{ app_environment }}:")) | .id' \
- | xargs -r -L 1 auth0 roles delete --force
- - name: Delete rules
- shell: auth0 rules list --json 2>/dev/null \
- | jq -r '.[] | select(.name | startswith("{{ app_environment }}:")) | .id' \
- | xargs -r -L 1 auth0 rules delete --force
diff --git a/deploy/src/auth0/deploy_api.yml b/deploy/src/auth0/deploy_api.yml
deleted file mode 100644
index 550720f..0000000
--- a/deploy/src/auth0/deploy_api.yml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-- name: Deploy App.Function.Integration.Ynab auth0 api
- gather_facts: false
- hosts: localhost
- vars:
- auth0_api_identifier: "public"
- auth0_scopes:
- - function.integration.ynab
- tasks:
- - include_tasks: ensure_api.yml
- - include_tasks: ensure_role.yml
- vars:
- auth0_role_name: "User"
- - include_tasks: ensure_rule.yml
- vars:
- auth0_rule_name: "tenant-claim"
- auth0_rule_script: "{{ lookup('template', playbook_dir + '/tenant-claim.js') }}"
diff --git a/deploy/src/auth0/ensure_api.yml b/deploy/src/auth0/ensure_api.yml
deleted file mode 100644
index 682487b..0000000
--- a/deploy/src/auth0/ensure_api.yml
+++ /dev/null
@@ -1,16 +0,0 @@
----
-- name: Api info "{{ auth0_api_identifier }}"
- shell: auth0 apis show "{{ app_environment }}:{{ auth0_api_identifier }}"
- register: auth0_api_info
- changed_when: false
- failed_when: false
-
-# Create new
-- name: Create auth0 api "{{ auth0_api_identifier }}"
- when: auth0_api_info.rc != 0
- shell: auth0 apis create \
- --name="{{ app_environment }}:{{ auth0_api_identifier }}" \
- --identifier="{{ app_environment }}:{{ auth0_api_identifier }}" \
- --offline-access=false \
- --scopes="{{ auth0_scopes | join(',') }}" \
- --no-input
diff --git a/deploy/src/auth0/ensure_client.yml b/deploy/src/auth0/ensure_client.yml
deleted file mode 100644
index cc342fd..0000000
--- a/deploy/src/auth0/ensure_client.yml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-- name: Client info "{{ auth0_client_identifier }}"
- shell: auth0 apps list --json | jq -e -s ".[0], .[] | .[] | select(.name == \"{{ app_environment }}:{{ auth0_client_identifier }}\")"
- register: auth0_client_exists
- changed_when: false
- failed_when: false
-
-# Create new
-- name: Create auth0 client "{{ auth0_client_identifier }}"
- when: auth0_client_exists.rc != 0
- shell: auth0 apps create \
- --name="{{ app_environment }}:{{ auth0_client_identifier }}" \
- --description="{{ app_environment }}:{{ auth0_client_identifier }}" \
- --type="{{ auth0_client_type }}" \
- --callbacks="{{ auth0_client_callbacks }}" \
- --web-origins="{{ auth0_client_origins }}" \
- --logout-urls="{{ auth0_client_origins }}"
-
-- name: Get client info
- register: auth0_client_info
- shell: auth0 apps list --json --reveal-secrets \
- | jq -e -r ".[] | select(.name == \"{{ app_environment }}:{{ auth0_client_identifier }}\")"
-
-- set_fact: "{{ app_environment | regex_replace('-', '_') }}_auth0_client_{{ auth0_client_identifier }}_id={{ input.client_id }}"
- vars:
- input: "{{ auth0_client_info.stdout | from_json }}"
-- set_fact: "{{ app_environment | regex_replace('-', '_') }}_auth0_client_{{ auth0_client_identifier }}_secret={{ input.client_secret }}"
- vars:
- input: "{{ auth0_client_info.stdout | from_json }}"
diff --git a/deploy/src/auth0/ensure_role.yml b/deploy/src/auth0/ensure_role.yml
deleted file mode 100644
index 860b2df..0000000
--- a/deploy/src/auth0/ensure_role.yml
+++ /dev/null
@@ -1,25 +0,0 @@
----
-- name: Role info "{{ auth0_role_name }}"
- shell: auth0 roles list --json | jq -s -e ".[0], .[] | .[] | select(.name == \"{{ app_environment }}:{{ auth0_role_name }}\")"
- register: auth0_role_exists
- changed_when: false
- failed_when: false
-
-# Create new
-- name: Create role "{{ auth0_role_name }}"
- when: auth0_role_exists.rc != 0
- shell: auth0 roles create \
- --name="{{ app_environment }}:{{ auth0_role_name }}" \
- --description="{{ app_environment }}:{{ auth0_role_name }}"
-
-# Get role id
-- name: Role info "{{ auth0_role_name }}"
- register: auth0_role_id_info
- shell: auth0 roles list --json 2>/dev/null \
- | jq -e -r ".[] | select(.name == \"{{ app_environment }}:{{ auth0_role_name }}\") | .id"
-
-- include_tasks: ensure_role_permission.yml
- loop: "{{ auth0_scopes }}"
- vars:
- auth0_role_id: "{{ auth0_role_id_info.stdout }}"
- auth0_permission: "{{ item }}"
diff --git a/deploy/src/auth0/ensure_role_permission.yml b/deploy/src/auth0/ensure_role_permission.yml
deleted file mode 100644
index b347ab7..0000000
--- a/deploy/src/auth0/ensure_role_permission.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-- name: "Role permission info {{ auth0_role_id }}"
- shell: auth0 roles permissions list --json "{{ auth0_role_id }}" \
- | jq -e -s ".[0], .[] | .[] | select(.resource_server_identifier == \"{{ app_environment }}:{{ auth0_api_identifier }}\" && .permission_name == \"{{ auth0_permission }}\")"
- register: auth0_role_permission_exists
- changed_when: false
- failed_when: false
-
-# Create new
-- name: "Create role permission {{ auth0_role_id }}: {{ auth0_api }} {{ auth0_permission }}"
- when: auth0_role_permission_exists.rc != 0
- shell: auth0 roles permissions add {{ auth0_role_id }} \
- --api-id="{{ app_environment }}:{{ auth0_api_identifier }}" \
- --permissions="{{ auth0_permission }}"
diff --git a/deploy/src/auth0/ensure_rule.yml b/deploy/src/auth0/ensure_rule.yml
deleted file mode 100644
index 631a0ef..0000000
--- a/deploy/src/auth0/ensure_rule.yml
+++ /dev/null
@@ -1,28 +0,0 @@
----
-- name: Rule info "{{ auth0_rule_name }}"
- shell: auth0 rules list --json | jq -e -s ".[0], .[] | .[] | select(.name == \"{{ app_environment }}--{{ auth0_rule_name }}\")"
- register: auth0_rule_exists
- changed_when: false
- failed_when: false
-
-# Create new rule
-- name: Create rule "{{ auth0_rule_name }}"
- when: auth0_rule_exists.rc != 0
- shell: auth0 rules create \
- --name="{{ app_environment }}--{{ auth0_rule_name }}" \
- --script="{{ auth0_rule_script }}" \
- --template=empty \
- --enabled=true
-# Get rule id
-- name: Rule info "{{ auth0_rule_name }}"
- register: auth0_rule_id_info
- shell: auth0 rules list --json 2>/dev/null \
- | jq -e -r ".[] | select(.name == \"{{ app_environment }}--{{ auth0_rule_name }}\") | .id"
-
-- name: Update rule "{{ auth0_rule_name }}"
- when: auth0_rule_exists.rc == 0
- shell: auth0 rules update {{ auth0_rule_id_info.stdout }} \
- --name="{{ app_environment }}--{{ auth0_rule_name }}" \
- --script="{{ auth0_rule_script }}" \
- --force \
- --enabled=true
diff --git a/deploy/src/auth0/login.yml b/deploy/src/auth0/login.yml
deleted file mode 100644
index c280a8b..0000000
--- a/deploy/src/auth0/login.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-- name: Configure auth0 auth provider
- gather_facts: false
- hosts: localhost
- tasks:
- - name: Auth0 login state
- shell: auth0 tenants list --no-color --no-input | grep "{{ auth0_domain }}"
- register: auth0_login_info
- changed_when: false
- failed_when: false
-
- # Create new
- - name: Auth0 login "{{ auth0_domain }}"
- when: auth0_login_info.rc != 0
- shell: auth0 login \
- --domain "{{ auth0_domain }}" \
- --client-id "{{ auth0_client_id }}" \
- --client-secret "{{ auth0_client_secret }}" \
- --no-input
diff --git a/deploy/src/auth0/tenant-claim.js b/deploy/src/auth0/tenant-claim.js
deleted file mode 100644
index 4bfae12..0000000
--- a/deploy/src/auth0/tenant-claim.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function (user, context, callback) {
- if (context.clientName.startsWith('"{{ app_environment }}:"')) {
- context.accessToken['app/tenants'] = user?.app_metadata?.tenants || [];
- }
-
- return callback(null, user, context);
-}
\ No newline at end of file
diff --git a/deploy/src/delete.yml b/deploy/src/delete.yml
deleted file mode 100644
index 854e6c1..0000000
--- a/deploy/src/delete.yml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-# Mongodb database
-- import_playbook: mongodb/delete.yml
- vars:
- app_environment: "{{ APP_ENVIRONMENT }}"
- project_id: "{{ MONGODB_ATLAS_PROJECT_ID }}"
- public_api_key: "{{ MONGODB_ATLAS_PUBLIC_KEY }}"
- private_api_key: "{{ MONGODB_ATLAS_PRIVATE_KEY }}"
-
-# Google cloud resources
-- import_playbook: gcloud/delete.yml
- vars:
- app_environment: "{{ APP_ENVIRONMENT }}"
- app_image_tag: "{{ APP_TAG }}"
- google_region: "{{ GOOGLE_REGION }}"
- google_project_id: "{{ GOOGLE_PROJECT_ID }}"
-
-# Auth0 resources
-- import_playbook: auth0/login.yml
- vars:
- app_environment: "{{ APP_ENVIRONMENT }}"
- auth0_domain: "{{ AUTH0_DOMAIN }}"
- auth0_client_id: "{{ AUTH0_CLIENT_ID }}"
- auth0_client_secret: "{{ AUTH0_CLIENT_SECRET }}"
-- import_playbook: auth0/delete.yml
- vars:
- app_environment: "{{ APP_ENVIRONMENT }}"
- auth0_domain: "{{ AUTH0_DOMAIN }}"
- auth0_client_id: "{{ AUTH0_CLIENT_ID }}"
- auth0_client_secret: "{{ AUTH0_CLIENT_SECRET }}"
diff --git a/deploy/src/deploy.yml b/deploy/src/deploy.yml
deleted file mode 100644
index 0f680a1..0000000
--- a/deploy/src/deploy.yml
+++ /dev/null
@@ -1,45 +0,0 @@
----
-# Infra (auth0)
-- import_playbook: auth0/login.yml
- vars:
- app_environment: "{{ APP_ENVIRONMENT }}"
- auth0_domain: "{{ AUTH0_DOMAIN }}"
- auth0_client_id: "{{ AUTH0_CLIENT_ID }}"
- auth0_client_secret: "{{ AUTH0_CLIENT_SECRET }}"
-- import_playbook: auth0/deploy_api.yml
- vars:
- app_environment: "{{ APP_ENVIRONMENT }}"
-
-# Infra (database)
-- import_playbook: mongodb/create.yml
- vars:
- app_environment: "{{ APP_ENVIRONMENT }}"
- google_region: "{{ GOOGLE_REGION }}"
- project_id: "{{ MONGODB_ATLAS_PROJECT_ID }}"
- public_api_key: "{{ MONGODB_ATLAS_PUBLIC_KEY }}"
- private_api_key: "{{ MONGODB_ATLAS_PRIVATE_KEY }}"
-
-# Backend functions
-- import_playbook: ../../App.Function.Integration.Ynab/deploy/deploy.yml
- vars:
- app_environment: "{{ APP_ENVIRONMENT }}"
- app_image_tag: "{{ APP_TAG }}"
- app_frontend: "{{ APP_FRONTEND }}"
- google_region: "{{ GOOGLE_REGION }}"
- google_project_id: "{{ GOOGLE_PROJECT_ID }}"
- sentry_dsn: "{{ SENTRY_DSN }}"
- database_connection_string: "{{ mongodb_connection_string_admin }}"
- auth0_domain: "{{ AUTH0_DOMAIN }}"
- ynab_client_id: "{{ YNAB_CLIENT_ID }}"
- ynab_client_secret: "{{ YNAB_CLIENT_SECRET }}"
-
-# Frontend
-- import_playbook: ../../frontend-web/deploy/deploy.yml
- vars:
- app_environment: "{{ APP_ENVIRONMENT }}"
- app_project_name: "{{ GOOGLE_PROJECT_ID }}"
- cloudflare_api_token: "{{ CLOUDFLARE_API_TOKEN }}"
- cloudflare_account_id: "{{ CLOUDFLARE_ACCOUNT_ID }}"
- auth0_domain: "{{ AUTH0_DOMAIN }}"
- service_urls:
- function_integration_ynab_url: "{{ function_integration_ynab_url }}"
diff --git a/deploy/src/gcloud/delete.yml b/deploy/src/gcloud/delete.yml
deleted file mode 100644
index 029d7c0..0000000
--- a/deploy/src/gcloud/delete.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-- name: Delete gcloud resources
- gather_facts: false
- hosts: localhost
- tasks:
- # Cloud run services
- - name: Delete services
- shell: gcloud run services list \
- --project="{{ google_project_id }}" \
- --region="{{ google_region }}" \
- --filter="metadata.labels.environment='{{ app_environment }}'" \
- --format="value(metadata.name)" \
- | xargs -I {} gcloud run services delete \
- --project="{{ google_project_id }}" \
- --region="{{ google_region }}" \
- --quiet {}
- # Pubsub
- # Storage
- # Scheduler jobs
diff --git a/deploy/src/mongodb/create.yml b/deploy/src/mongodb/create.yml
deleted file mode 100644
index 3a877f1..0000000
--- a/deploy/src/mongodb/create.yml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-- name: Create mongodb database
- gather_facts: false
- hosts: localhost
- environment:
- MONGODB_ATLAS_PUBLIC_API_KEY: "{{ public_api_key }}"
- MONGODB_ATLAS_PRIVATE_API_KEY: "{{ private_api_key }}"
- MONGODB_ATLAS_PROJECT_ID: "{{ project_id }}"
- tasks:
- - name: Set variables
- set_fact:
- admin_user: "{{ admin_user | default('admin') }}"
- read_user: "{{ read_user | default('read') }}"
- write_user: "{{ write_user | default('write') }}"
-
- # Create instance
- - name: Get MongoDB Atlas serverless instance info
- shell: atlas serverless describe "{{ app_environment }}" -o json
- register: instance_info
- changed_when: false
- failed_when: false
- - name: Create server instance
- when: instance_info.rc != 0
- shell: atlas serverless create "{{ app_environment }}" \
- --provider=GCP \
- --region="{{ google_region | replace('europe-west1', 'WESTERN_EUROPE') }}"
-
- # Configure network access
- - name: Get network access list
- shell: atlas accessLists list -o json | jq -e -r ".results[] | select(.comment == \"public\")" > /dev/null
- register: access_info
- changed_when: false
- failed_when: false
- - name: Create network access list
- when: access_info.rc != 0
- shell: atlas accessLists create "0.0.0.0/0" --comment="public"
-
- # Create users
- - include_tasks: create_user.yml
- vars:
- - username: "{{ admin_user }}"
- role: atlasAdmin
- - include_tasks: create_user.yml
- vars:
- - username: "{{ read_user }}"
- role: readAnyDatabase
- - include_tasks: create_user.yml
- vars:
- - username: "{{ write_user }}"
- role: readWriteAnyDatabase
diff --git a/deploy/src/mongodb/create_user.yml b/deploy/src/mongodb/create_user.yml
deleted file mode 100644
index a84dd68..0000000
--- a/deploy/src/mongodb/create_user.yml
+++ /dev/null
@@ -1,38 +0,0 @@
----
-- name: Set variables
- set_fact:
- password: "{{ lookup('community.general.random_string', length=12, special=false) }}"
-
-- name: Get atlas user info {{ username }}
- shell: atlas dbusers describe "{{ app_environment }}__{{ username }}" --projectId="{{ project_id }}" -o json
- register: user_info
- changed_when: false
- failed_when: false
-
-# Create new
-- name: Create atlas user "{{ username }}"
- when: user_info.rc != 0
- shell: atlas dbusers create \
- --projectId="{{ project_id }}" \
- --scope="{{ app_environment }}" \
- --username="{{ app_environment }}__{{ username }}" \
- --password="{{ password }}" \
- --role="{{ role }}"
-
-# Update / roll password
-- name: Update atlas user "{{ username }}"
- when: user_info.rc == 0
- shell: atlas dbusers update "{{ app_environment }}__{{ username }}" \
- --projectId="{{ project_id }}" \
- --password="{{ password }}"
-
-- name: Find connection string
- register: connection_string_info
- shell: atlas serverless describe "{{ app_environment }}" \
- --projectId="{{ project_id }}" \
- -o json | jq -r ".connectionStrings.standardSrv"
-
-- name: Set connection string variable
- set_fact: >-
- mongodb_connection_string_{{ username }}={{ connection_string_info.stdout |
- replace('mongodb+srv://', 'mongodb+srv://' + app_environment + '__' + username + ':' + password + '@') }}
diff --git a/deploy/src/mongodb/delete.yml b/deploy/src/mongodb/delete.yml
deleted file mode 100644
index c3fbda2..0000000
--- a/deploy/src/mongodb/delete.yml
+++ /dev/null
@@ -1,23 +0,0 @@
----
-- name: Delete mongodb database
- gather_facts: false
- hosts: localhost
- environment:
- MONGODB_ATLAS_PUBLIC_API_KEY: "{{ public_api_key }}"
- MONGODB_ATLAS_PRIVATE_API_KEY: "{{ private_api_key }}"
- MONGODB_ATLAS_PROJECT_ID: "{{ project_id }}"
- tasks:
- # Get instance info
- - name: Get MongoDB Atlas serverless instance info
- shell: atlas serverless describe "{{ app_environment }}" -o json | jq -e -r ".stateName" | grep -v "DELETING"
- register: instance_info
- changed_when: false
- failed_when: false
- # Delete instance if exists
- - name: Delete server instance
- when: instance_info.rc == 0
- shell: atlas serverless delete "{{ app_environment }}" --force
- - name: Delete users
- shell: atlas dbusers list -o json \
- | jq -r '.[] | select(.username | startswith("{{ app_environment }}__")) | .username' \
- | xargs -r -L 1 atlas dbusers delete --force
diff --git a/frontend-web/deploy/deploy.yml b/frontend-web/deploy/deploy.yml
deleted file mode 100644
index 4f19ccc..0000000
--- a/frontend-web/deploy/deploy.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-- import_playbook: deploy_auth0_client.yml
- vars:
- frontend_environment_url: "{{ 'https://' + app_environment + '.' + app_project_name + '.pages.dev/' }}"
- frontend_url: "{{ frontend_environment_url | regex_replace('^https://main.', 'https://') }}"
-- import_playbook: deploy_cf_pages.yml
diff --git a/frontend-web/deploy/deploy_auth0_client.yml b/frontend-web/deploy/deploy_auth0_client.yml
deleted file mode 100644
index 026a482..0000000
--- a/frontend-web/deploy/deploy_auth0_client.yml
+++ /dev/null
@@ -1,11 +0,0 @@
----
-- name: Create auth0 client
- hosts: localhost
- gather_facts: false
- tasks:
- - include_tasks: ../../deploy/src/auth0/ensure_client.yml
- vars:
- auth0_client_type: "spa"
- auth0_client_identifier: "frontend_web"
- auth0_client_callbacks: "{{ frontend_url }}"
- auth0_client_origins: "{{ frontend_url }}"
diff --git a/frontend-web/deploy/deploy_cf_pages.yml b/frontend-web/deploy/deploy_cf_pages.yml
deleted file mode 100644
index 32e00c0..0000000
--- a/frontend-web/deploy/deploy_cf_pages.yml
+++ /dev/null
@@ -1,41 +0,0 @@
----
-- name: Deploy frontend-web
- hosts: localhost
- gather_facts: false
- environment:
- CLOUDFLARE_API_TOKEN: "{{ cloudflare_api_token }}"
- CLOUDFLARE_ACCOUNT_ID: "{{ cloudflare_account_id }}"
- vars:
- project_dir: "{{ playbook_dir }}/../.."
- app_environment_var_name: "{{ app_environment | regex_replace('-', '_') }}"
- tasks:
- - name: Build
- shell: npm ci && npm run build
- args:
- chdir: "{{ project_dir }}/frontend-web"
- environment:
- REACT_APP_FUNCTION_INTEGRATION_YNAB_BASE: "{{ function_integration_ynab_url }}"
- REACT_APP_APP_ENVIRONMENT: "{{ app_environment }}"
- REACT_APP_AUTH0_CLIENT_ID: "{{ lookup('vars', app_environment_var_name + '_auth0_client_frontend_web_id') }}"
- REACT_APP_AUTH0_DOMAIN: "{{ auth0_domain }}"
-
- - name: Get project info
- shell: npx wrangler pages project list | grep "{{ app_project_name }}" > /dev/null
- args:
- chdir: "{{ project_dir }}/deploy"
- register: project_info
- changed_when: false
- failed_when: false
- - name: Create project
- when: project_info.rc != 0
- shell: npx wrangler pages project create "{{ app_project_name }}" \
- --production-branch=main
- args:
- chdir: "{{ project_dir }}/deploy"
-
- - name: Publish the website to Cloudflare Pages
- shell: npx wrangler pages publish "{{ project_dir }}/frontend-web/build" \
- --branch="{{ app_environment }}" \
- --project-name="{{ app_project_name }}"
- args:
- chdir: "{{ project_dir }}/deploy"
diff --git a/frontend-web/generate_api_types.sh b/frontend-web/generate_api_types.sh
index c51e303..e627951 100755
--- a/frontend-web/generate_api_types.sh
+++ b/frontend-web/generate_api_types.sh
@@ -6,7 +6,7 @@ set -e
set -x
API_PROJECTS=( $(../.github/project_matrix.sh functions) )
-
+
# Clear old generated code
rm -Rf src/generated/*/*
@@ -17,6 +17,7 @@ for PROJECT in "${API_PROJECTS[@]}"
do
(
cd ../
+ export DOTNET_ENVIRONMENT=SwaggerBuild
dotnet swagger tofile \
--output "${PROJECT}/swagger.json" \
"${PROJECT}/bin/Debug/net7.0/${PROJECT}.dll" \
diff --git a/frontend-web/src/components/AuthProvider.tsx b/frontend-web/src/components/AuthProvider.tsx
index bd5a0ee..c6360f1 100644
--- a/frontend-web/src/components/AuthProvider.tsx
+++ b/frontend-web/src/components/AuthProvider.tsx
@@ -28,7 +28,7 @@ function AuthProvider({children}: { children: JSX.Element }) {
clientId={process.env.REACT_APP_AUTH0_CLIENT_ID}
authorizationParams={{
redirect_uri: window.location.origin,
- audience: `${process.env.REACT_APP_APP_ENVIRONMENT}:public`,
+ audience: `${process.env.REACT_APP_APP_ENVIRONMENT}-auth-public`,
scope: [
"openid",
"email",
diff --git a/serverless-personal-finance.sln b/serverless-personal-finance.sln
index a383bde..6dd8363 100644
--- a/serverless-personal-finance.sln
+++ b/serverless-personal-finance.sln
@@ -1,5 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
+#
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App.Lib", "App.Lib\App.Lib.csproj", "{2E9A1B96-8AEF-44E4-ACBC-D115D94A42F5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App.Function.Banktransaction.Import", "App.Function.Banktransaction.Import\App.Function.Banktransaction.Import.csproj", "{C4E8B48D-E9A1-48C9-A82E-7053BE438278}"
@@ -24,6 +25,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App.Function.Integration.Yn
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App.Lib.Ynab.Tests", "App.Lib.Ynab.Tests\App.Lib.Ynab.Tests.csproj", "{F36A3BAD-89D6-4ED7-815E-9C87344338AE}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App.Deploy", "App.Deploy\App.Deploy.csproj", "{4A1C7793-6D83-46C5-8E72-BB2ACE90F611}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -78,5 +81,9 @@ Global
{F36A3BAD-89D6-4ED7-815E-9C87344338AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F36A3BAD-89D6-4ED7-815E-9C87344338AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F36A3BAD-89D6-4ED7-815E-9C87344338AE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4A1C7793-6D83-46C5-8E72-BB2ACE90F611}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4A1C7793-6D83-46C5-8E72-BB2ACE90F611}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4A1C7793-6D83-46C5-8E72-BB2ACE90F611}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4A1C7793-6D83-46C5-8E72-BB2ACE90F611}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
diff --git a/serverless-personal-finance.sln.DotSettings.user b/serverless-personal-finance.sln.DotSettings.user
index ac830e2..3ba1d7f 100644
--- a/serverless-personal-finance.sln.DotSettings.user
+++ b/serverless-personal-finance.sln.DotSettings.user
@@ -2,6 +2,7 @@
<AssemblyExplorer>
<Assembly Path="/home/freek/.nuget/packages/sentry.extensions.logging/3.22.0/lib/net6.0/Sentry.Extensions.Logging.dll" />
<Assembly Path="/home/freek/.nuget/packages/ynab.rest/0.7.0/lib/netstandard2.0/YNAB.Rest.dll" />
+ <Assembly Path="/home/freek/.nuget/packages/pulumi.gcp/6.51.0/lib/netcoreapp3.1/Pulumi.Gcp.dll" />
</AssemblyExplorer>